SwiftUI文档很难确定在每个渲染时实际发生了什么、它们何时发生以及是什么原因造成的(或者我不知道该去哪里找!)
我试图避免构建一个单独的类来执行逻辑并从我的视图中进行引用,但我不明白逻辑应该放在哪里,而且官方教程没有多少涉及到这一点。我试图构建一个像React一样的组件化系统,其中子组件是独立的,不必依赖于辅助类。
明确一下,我认为答案是下面的 1.
以下是我不理解的内容:
在React中,我可以说:
const [someStateVariable, setSomeStateVariable] = useState("")
const dependsOnStateVariable = someStateVariable ? 0 : 1;
但是在SwiftUI中,我不能做到:
@State var someStateVariable: String = ""
var dependsOnSomeStateVariable = someStateVariable ? 0 : 1
同样的道理适用于使用传递的props(初始化变量)进行逻辑处理。在react中,我可以使用这些props做一些事情。在Swift中,我无法这样做。
1.所有这些逻辑都必须放在init中吗?我猜从阅读结构文档来看,这是有道理的,我只想确保我正确理解了它。
2.分化算法和生命周期事件的文档在哪里?什么会触发渲染?什么时候运行
init
?在每次渲染时(即传递的属性发生更改或状态更改)还是第一次出现时(我猜测在每次渲染时,因为onAppear存在)。3.我如何响应副作用?似乎有点复杂。是否有一个useEffect等效的东西?当特定状态或输入变量发生更改时我可以运行的代码?
.onReceive
设置为视图。 - Daniel Amarante