You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何让作为@Environment的Observable类变量支持@Bindable?

解决方法

要让TextField能绑定到环境中User实例的username属性,你需要用@Bindable包装环境变量user,具体操作如下:

  1. 在声明环境变量时添加@Bindable修饰符:
@Bindable @Environment(User.self) private var user
  1. 之后即可正常使用$user.username实现文本框的双向绑定:
TextField(text: $user.username)

原代码报错原因

原代码直接使用$user.username时抛出错误:无法在作用域中找到 '$user',这是因为@Environment(User.self)提供的是只读的实例引用包装器,不会自动生成绑定能力。通过@Bindable包装后,Observable实例会被转换为可绑定对象,此时就能通过$符号获取属性的绑定值,实现双向更新。

内容的提问来源于stack exchange,提问作者Ilja

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.03 00:49:53