从文本视图内容中获取字符串

Get String from Text view content

提问人:arroyot24 提问时间:9/6/2023 更新时间:9/6/2023 访问量:52

问:

在我的一个泛型视图中,我将一个“Content”参数定义为要传递的 View,因为我需要在此泛型视图上显示 Core Data 中 FetchRequest 的行内容。对于该 ForEach 的滑动操作,我需要从该视图传递字符串:

struct MyView<Object: NSManagedObject, Content: View>: View {
  var items: FetchedResults<Object>
  var rowContent: (Object) -> Content
  
  init(items: FetchedResults<Object>, rowContent: @escaping (Object) -> Content) {
    self.items = items
    self.rowContent = rowContent
  }
  
  @State private var editingItemName = ""
  
  var body: some View {
    ForEach(items, id: \.self) { item in
        rowContent(item)
        
        .swipeActions(edge: .leading) {
           Button {
              editingItemName = rowContent(item)  
              //Here I can't get just string value. Just something like "Text(storage: SwiftUI.Text.Storage.verbatim("text_I_need_to_get"), modifiers: [])"

这是从另一个视图调用的:

struct ParentView: View {
@FetchRequest(sortDescriptors: []) private var items: FetchedResults<MyEntity>

var body: some View {
    Form {
      NavigationLink(destination: MyView(items: instruments, rowContent: { item in
          Text(item.name ?? "")
          })) {
            Label("Items", systemImage: "star")
          }
          //More code here

forEach 中的 rowContent(item) 工作得很好,但是我怎么能只抓取字符串“text_I_need_to_get”呢?

swift 字符串 swiftui 文本

评论

0赞 lorem ipsum 9/6/2023
你不能,SwiftUI 包装器被“隐藏”在秘密存储中的原因有很多(观看揭开 SwiftUI 的神秘面纱),你已经使用或制作了与itemButton
0赞 arroyot24 9/6/2023
谢谢。使用它时会引发错误:“无法分配 'FetchedResults<Object> 类型的值。Element'(又名 'Object')键入 'String'”。您能否再澄清一下“使值的真实来源与按钮处于同一级别”?editingItemName = item
0赞 lorem ipsum 9/6/2023
错误很明显,“MyEntity”不是一个,反之亦然,但您想创建一个额外的子视图,您可以在其中用于String@ObservedObjectitem

答: 暂无答案