SwiftUI @State var 初始化问题

2024-01-09

我想初始化 a 的值@StateSwiftUI 中的 var 通过init()的方法Struct,因此它可以从准备好的字典中获取正确的文本,以便在 TextField 中进行操作。 源代码如下所示:

struct StateFromOutside: View {
    let list = [
        "a": "Letter A",
        "b": "Letter B",
        // ...
    ]
    @State var fullText: String = ""

    init(letter: String) {
        self.fullText = list[letter]!
    }

    var body: some View {
        TextField($fullText)
    }
}

不幸的是执行失败并出现错误Thread 1: Fatal error: Accessing State<String> outside View.body

我该如何解决这个问题?预先非常感谢您!


SwiftUI 不允许你change @State在初始化程序中,但你可以初始化 it.

删除默认值并使用_fullText to set @State直接而不是通过属性包装访问器。

@State var fullText: String // No default value of ""

init(letter: String) {
    _fullText = State(initialValue: list[letter]!)
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

SwiftUI @State var 初始化问题 的相关文章

  • SwiftUI |选择器 - 更改选定行的颜色

    我想更改所选行的颜色 正如您所看到的 默认情况下它具有浅灰色 我不知道该怎么做 因为我根本找不到访问这一行的方法 有什么办法可以做到这一点吗 演示代码 struct ContentView View var data Array 0 20
  • 水平滚动视图无法正常工作 swiftUI

    我试图显示一些水平视图 但它不起作用 下面是我正在使用的代码 State var userDataList UserModel var body some View VStack spacing 10 VStack prefView pad
  • SwiftUI 按钮在出现时更改文本大小

    从 GIF 中可以看出 一旦工作表完全打开 完成 按钮文本就会变大 这不仅发生在这个视图中 而且也发生在使用系统图像而不是文本的其他视图中 有谁知道问题的解决方案还是我做错了什么 我仍然对 Swift 记忆犹新 NavigationView
  • Swiftui Binding 操作尝试每帧更新多次

    我在调试文本字段输入的问题时遇到问题 信息 MacOs 蒙特利版本 12 0 Beta 21A5284e Xcode 13 0 beta 3 13A5192j 实体手机IOS 15 0 19A297e 问题说明 当我尝试输入绑定到视图模型的
  • 有没有 SwiftUI 方法来制作文本上标或下标?

    我知道可以像这样应用偏移量Text TM offset x 0 y 7 但是有没有不同或更好的方法来在 SwiftUI 中创建一些上标或下标文本 这是使用的通用方法 baselineOffset Text Company font call
  • 覆盖菜单按钮标签文本颜色 (MacOS SwiftUI)

    我可以覆盖菜单按钮标签的 设置后变暗 颜色吗 下面的 GIF 显示了一个清晰明亮的菜单项 在新选择后会变暗 此系统样式的默认行为 例如 在触控板首选项中 但它不符合可访问性标准 例如 WCAG 要求活动控件中该字体大小的亮度对比度 gt 4
  • 我如何确定视图在 SwiftUI 中的最后一行代码之前完全渲染?

    我有一些代码 它们必须在视图完全渲染和绘制后被触发 因为我们知道视图的 onAppear 或 onChange 它们对于了解视图是否已出现或正在更改很有用 但它们是确保视图已 100 渲染没有用 例如 如果我们在视图中获得 ForEach
  • SwiftUI 无法使用 navigationLink 来回导航

    请注意 在 gif 中 一旦我导航并关闭新视图 我就无法返回 这是 SwiftUI 错误还是导航链接的误用 struct ContentView View var body some View return NavigationView N
  • 为应用程序创建了新的 WidgetKit 扩展:SwiftUI 预览不适用于“appex 必须位于应用程序中”

    我使用的是 macOS 12 6 上的 Xcode 14 0 1 我正在尝试使用 WidgetKit 在现有应用程序中创建一个新的手表复杂功能 首先向我的项目添加一个 Widget 扩展模板目标 这会生成一个新文件夹 其中包含意图定义文件
  • SwiftUI - 正确使用 @available() 和 #available

    我在下面的代码中遗漏了什么吗 此应用程序在 iOS 15 设备上构建 macOS Monterey b5 Xcode 13 b5 并完美执行 但在 iOS 14 7 设备上导致 SIGABRT import SwiftUI struct C
  • CoreData 和 SwiftUI:环境中的上下文未连接到持久存储协调器

    我正在尝试通过构建一个作业管理应用程序来自学核心数据 我的代码构建良好 应用程序运行正常 直到我尝试将新分配添加到列表中 我收到这个错误Thread 1 EXC BREAKPOINT code 1 subcode 0x1c25719e8 在
  • SwiftUI - 获取孩子的大小?

    有什么方法可以获取 SwiftUI 中子视图的大小吗 我基本上希望做 UIKit 相当于 self child frame origin x self child intrinsicContentSize width 2 0 我认为 Geo
  • 在 SwiftUI TextEditor 中设置光标位置

    有没有办法以编程方式将光标移动到特定文本行或在 SwifUI 中选择它TextEditor 例如 如果有一个TextEditor里面写着10行 当用户按下按钮时 光标将导航到第三行 或者文本将被选择 目前使用默认的 SwiftUI 是不可能
  • SwiftUI 转义闭包捕获变异的“self”参数

    我有一个可以通过两种方式打开的视图 一个包含提供给它的数据 另一个包含对 Firestore 文档的文档引用 我创建了两个构造函数 在第一个构造函数中我提供数据 在另一个构造函数中我提供文档参考 然后我使用此引用进行网络调用 但出现错误 E
  • 自定义“可搜索”搜索字段 SwiftUI iOS 15

    When using the new searchable modifier in SwiftUI on iOS 15 I have no way to customize the Search Bar appearance Specifi
  • 工作表关闭后 SwiftUI 导航栏项目框架未对齐

    在 SwiftUI 中关闭工作表后 导航栏按钮不可点击 以下是重现该问题的步骤 出示一张单子 将应用程序移至后台一小段时间 2 秒 恢复应用程序并向下滑动关闭工作表 现在导航栏按钮框架未对齐 点击的工作框架与按钮的可见框架不同 这在 iOS
  • SwiftUI 更新主菜单 [已解决] kludgey

    真正的问题 你如何更新mainMenu在 SwiftUI 中 它真的可以工作吗 我在 SwiftUI 中构建了一个基于 MacOS 文档的应用程序 其中包括所有内置的文件菜单命令 即关闭 保存 复制 重命名 等 在保存文档之前 我会验证结构
  • 如何使用 SwiftUI 获取多个屏幕上的键盘高度并移动按钮

    以下代码获取键盘显示时的键盘高度 并将按钮移动键盘高度 在转换源 ContentView 和转换目标 SecibdContentView 处以相同的方式执行此移动 但按钮在转换目标处不移动 如何使按钮在多个屏幕上移动相同 import Sw
  • SwiftUI - 在 NavigationView 中嵌套 TabView 时不显示导航栏标题

    由于应用程序特定的原因 我必须将 TabView 嵌套在 NavigationView 中 但是选项卡项目的导航栏标题不会显示 只是一个空的导航栏 有什么解决办法吗 struct ContentView View var body some
  • 具有多个 ViewBuilder 的 SwiftUI 视图

    我有一个视图 表示单元格中的一行 如下所示 这很有效 但三个水平元素 图像 标题 副标题 图像 被硬编码为其各自的类型 我想要一个通用的ThreeItemView这可能需要 3Views任何类型并如图所示排列它们 这将允许我将相同的容器布局

随机推荐

  • 使用尺寸类别以编程方式实现两种不同的布局

    我有一个四个按钮的布局 在肖像中 它们应该一个在另一个之上 在横向中 它们应该分为两列 每列有两个按钮 我在代码中实现了按钮 非常简单的东西 UIButton btn1 UIButton alloc init self view addSu
  • 访问 Google Translate v2 API 时出现错误 403

    我正在尝试从 Android 应用程序中访问 Google 的翻译服务 但是 每次我尝试访问该服务 使用HttpGet请求 我遇到以下错误 error errors domain usageLimits reason accessNotCo
  • 如何在 Ansible 中去掉变量的引号?

    我正在尝试将文件中变量的值获取到 Ansible 变量中 以便我可以使用它 这是我所得到的 name extract Unique Key shell grep UNIQUE KEY config py cut d f 3 register
  • Android 获取所有已安装应用程序的列表

    我使用此代码获得了已安装应用程序的列表 public List
  • Laravel 6 显示 419 |页面已过期[重复]

    这个问题在这里已经有答案了 在本地服务器中 以下 laravel 项目工作正常 但是当项目上传到在线服务器上时 它显示了问题 当尝试登录时 它显示 419 419页面已过期 当我上传到在线服务时 我已经清除了路由 视图 缓存和配置 您的错误
  • 在参数中使用通配符

    在snakemake中使用config yaml文件定义参数时是否可以使用通配符 我使用通用 R 脚本来制作相同的基本热图 但使用不同的输入矩阵 我想使用通配符为 config yaml 文件中的每个热图指定热图的配置 例如 K 均值聚类的
  • 为什么自定义 DialogPreference 不会在 onSharedPreferenceChanged 侦听器上触发?

    我正在尝试在首选项中设置对话框首选项 用户只需单击肯定按钮即可触发某些操作 清除数据库 否 是 public class MyDialogPreference extends DialogPreference public MyDialog
  • 错误 D8016:“/ZI”和“/clr”命令行选项不兼容

    我的程序中出现以下错误 error D8016 ZI and clr command line options are incompatible 当我添加以下几行并在配置 gt 常规中启用公共运行时时会发生这种情况 如果我不启用它 则在使用
  • 错误:用户 ''@'localhost' 的访问被拒绝(使用密码:NO)

    我正在尝试使用 MySQL 和 Knex 进行数据库迁移 当我运行命令时knex migrate latest I get ER ACCESS DENIED ERROR Access denied for user localhost us
  • 使用 Node 提供 Vue 应用程序时,构建会导致空 HTML 页面出现语法错误

    我使用 CLI 创建了一个 VueJs 页面 我想在没有安装 Vue CLI 或 Node 的情况下向其他人展示它 就像您通常在浏览器中打开 html 文件一样 我想在构建后打开 index html 文件 当我打开该文件时 我在控制台中看
  • Postgres 中的 Group by 子句中有多个不需要的记录

    我有两张桌子 我将它们连接在一起 然后运行group by条款 问题是我不断收到不需要的数据 client table name company id created at company table name Query SELECT c
  • 使用 VSCode 调试 Celery

    我在用VSCode https code visualstudio com 用于使用 Django 框架进行 Web 开发 调试 Django 没有任何问题 但是当我尝试使用Celery http docs celeryproject or
  • Noob file.copy 问题在复制 .exe 文件 C# 时遇到问题

    我试图将 exe 文件从临时目录复制到桌面 但是当我这样做时 它只是创建一个新的 exe 文件 其中没有数据 大小为 0 KB 我用 txt 文件测试了这个语法 它完全复制了它 只是由于某种原因拒绝复制 exe 文件 我尝试使用string
  • 将颜色声明为常量

    我怎样才能申报Color输入为const像这样 private const Color MyLovedColor Color Blue 这不起作用 因为 Color Blue 是静态的而不是常量 只读对我没有帮助 因为我需要仅 支持 常量的
  • 纬度返回 0,0

    我正在尝试创建一个显示我当前位置的应用程序 我拥有所有必要的许可 我有另一个类名称 GPS 跟踪器来获取我的 GPS 位置 这是我的代码 GPSTracker gpsTracker new GPSTracker this LocationM
  • Nexus 7 上的 Android 4.2:canvas.drawText() 无法正常工作

    我的应用程序面临严重问题 该应用程序发布在 Google Play 上 并且显然在除 gt 4 0 之外的所有 Android 版本上都运行良好 这是我的 Android 4 0 HTC 手机的屏幕截图 这是我在 Nexus 7 Andro
  • 在 Sweetalert 上显示成功消息通知

    我想显示使用 Sweetalert 成功删除数据的消息以及脚本的开头 a href class delete link Delete a JavaScript jQuery document ready function delete li
  • 创建自定义大通知

    我想创建一个包含一些控件的通知 由于文本和控件在默认通知大小 64dp 下都很小 因此我希望它比默认大小更大 可以创建更大的通知 我认为也可以有自定义布局 但我不知道如何 To be more specific the following
  • Clojurescript:错误:无法找到或加载主类 clojure.main

    我按照它安装了 Clojurescript快速入门指南 https github com clojure clojurescript wiki Quick Start 我将 git 存储库拉到 clojurescript CLOJURESC
  • SwiftUI @State var 初始化问题

    我想初始化 a 的值 StateSwiftUI 中的 var 通过init 的方法Struct 因此它可以从准备好的字典中获取正确的文本 以便在 TextField 中进行操作 源代码如下所示 struct StateFromOutside