@Concurrent 函数中会提示“Only imported variables and local variables can be used in @concurrent decorated functions. ”
本文参与了思否 HarmonyOS 技术问答马拉松,欢迎正在阅读的你也加入。
@Concurrent 函数中会提示“Only imported variables and local variables can be used in @concurrent decorated functions. ”
本文参与了思否 HarmonyOS 技术问答马拉松,欢迎正在阅读的你也加入。
这个错误提示的意思是,在 @Concurrent
装饰的函数中,你只能使用导入的变量和局部变量。换句话说,你不能在这个函数中使用全局变量或外部变量。
@Concurrent
是 SwiftUI 中的一个修饰符,用于声明一个函数是并发执行的。由于并发执行可能会导致函数在不同的线程或调度器上运行,因此,为了确保数据的一致性和安全性,SwiftUI 限制了在这种函数中使用的变量类型。
为了解决这个问题,你有以下几个选项:
@Concurrent
函数中使用的变量作为参数传入。@State
或 @Binding
:如果你正在使用 SwiftUI,并且需要在多个视图或函数之间共享数据,你可以考虑使用 @State
或 @Binding
。这样,数据将被封装在一个可以被并发访问的结构中。EnvironmentObject
或 ObservedObject
:这些是 SwiftUI 提供的数据管理方案,用于在多个视图之间共享和观察数据。虽然它们不是专门为并发设计的,但在某些情况下,它们可以与 @Concurrent
函数一起使用。@Concurrent
:如果可能,重新设计你的代码以避免使用 @Concurrent
。这可能意味着你需要重新考虑你的数据结构和函数的设计。最后,请注意,并发编程是一个复杂的主题,需要仔细考虑数据的一致性和安全性。在尝试解决这个问题时,确保你理解你正在使用的工具和技术的限制和最佳实践。
1 回答1.1k 阅读✓ 已解决
1 回答1.1k 阅读
1 回答978 阅读
1 回答944 阅读
1 回答861 阅读
817 阅读
699 阅读
将
createDocument
方法体抽出到ts文件中,然后import
进来后,在createDocument
中调用试试。推测原因:
https://developer.huawei.com/consumer/cn/doc/harmonyos-refere...注意事项