当前位置: 首页 > 知识库问答 >
问题:

如何在视图-SwiftUI中创建接受绑定并将其传递给另一个绑定的视图

丌官晔
2023-03-14

我想知道如何将绑定变量向下传递到滑块视图

struct TodayItemView: View {

   @State var progress = 0.0

   var body: some View {
       VStack {
           Slider(value: $progress,
                   in: 0...1,
                   step: 0.25)
       }
   }
}

如果我将@State更改为@绑定,它会显示很多错误消息,如下所示

无法将“Double”类型的值转换为指定的“Binding”类型

调用中的无关参数标签“wrapedValue:”

无法推断泛型参数“V”

但是,我想让它对该变量具有@Binding,因为我将在另一个视图中使用此视图。

有什么解决办法吗?

共有1个答案

昝成弘
2023-03-14

具有绑定的视图不能拥有/存储该值。编译器错误来自=0.0

您需要做的是创建一个存储值的包装器视图(当您想在不传入值的情况下使用它时)

struct TodayItemView: View {

   @Binding var progress: Double

   var body: some View {
       VStack {
           Slider(value: $progress,
                   in: 0...1,
                   step: 0.25)
       }
   }
}

struct SelfContainedTodayItemView {
    @State var progress: Double = 0.0
    
    var body: some View {
        TodayItemView(progress: $progress)
    }
}

然后,您可以在未传入绑定的情况下使用SelfContainedTodayItemView,并在您传入绑定的情况下使用TodayItemView

 类似资料:
  • 问题内容: 我有一个SwiftUI视图,其中包含一个名为的EnvironmentObject 。然后,它读取其方法中的值。我希望这可以将我的视图绑定到该属性,以便在属性更新时重新呈现该属性,但这似乎没有发生。 这是一个错误吗?如果没有,将视图绑定到SwiftUI中环境对象的嵌套属性的惯用方式是什么? 具体来说,我的模型看起来像这样… 我的观点看起来像这样… 当我运行应用程序并单击标签时,属性会增加

  • 问题内容: 搜索后,我没有在网上或任何其他资源中找到任何东西,我想知道您是否可以通过联接另一个视图和一些其他表来形成一个视图?我猜类似的东西与Server_ref.part_notification_view是要加入的视图。 问题答案: 您当然可以在另一个视图的基础上建立一个视图: 但是您不能引用基础表中的任何内容,包括不属于视图的任何字段: 具有相同列的基础表不是问题,并且如果您在视图中包含的内

  • 我想在 init 方法中默认 returnGroup 为 nil,但是我收到以下错误 Nil 默认参数值无法转换为类型 'Binding' 想知道如何将绑定设置为 nil ?

  • 本文向大家介绍Android 在ButterKnife中解除绑定视图,包括了Android 在ButterKnife中解除绑定视图的使用技巧和注意事项,需要的朋友参考一下 示例 片段的视图生命周期与活动不同。在onCreateView中绑定片段时,在onDestroyView中将视图设置为null。当您调用bind为您执行此操作时,Butter Knife会返回Unbinder实例。在适当的生命周

  • 就像标题一样,如果我按下列表视图中的按钮,我希望将按钮的位置发送到另一个活动 我不知道你想检查我做了什么。 我把按钮按下时的方法,这个方法在list适配器里面