SwiftUI中状态改变未导致视图正确刷新的原因及解决

Posted 大熊猫侯佩

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SwiftUI中状态改变未导致视图正确刷新的原因及解决相关的知识,希望对你有一定的参考价值。

在这里插入图片描述



问题现象

SwiftUI中状态发生改变,对应的视图刷新却不正确:

在这里插入图片描述

如上可以看到,每个Item对应一个ItemView视图,当Item发生切换时会造成ItemView被重建,所以ItemView输入框中的内容应该被清空,但是并没有。

这个现象在Mac里使用SwiftUI开发同样会出现。

到底是什么原因?又该如何解决呢?

Let’s find out!



问题分析

1. 卢克,上代码!

我们的代码很简单,首先定义一个结构,然后创建2个实例:

struct Item: Identifiable

以上是关于SwiftUI中状态改变未导致视图正确刷新的原因及解决的主要内容,如果未能解决你的问题,请参考以下文章

SwiftUI导航至子视图后状态改变导致导航栈提前弹出的原因及解决

SwiftUI导航至子视图后状态改变导致导航栈提前弹出的原因及解决

SwiftUI 如何快速识别视图(View)界面的刷新是由哪个状态的改变导致的?

SwiftUI 如何快速识别视图(View)界面的刷新是由哪个状态的改变导致的?

SwiftUI 计算属性显示“在视图更新期间修改状态,这将导致未定义的行为。”错误

SwiftUI中NavigationLink多层嵌套导航无法返回上一层的原因及解决