Flutter 是如何渲染小部件的,这里已经详细描述了。它会将新的小部件与旧的小部件进行比较。因此,Flutter 通常知道在大多数情况下如何重新渲染 UI。
在嵌套对象结构中,当您更改子对象时,所有父窗口小部件都不可避免地发生变化,因此它们似乎被呈现为新的。
这会导致应用程序用户的视觉效果没有吸引力。
有没有办法只重新渲染调用 SetState () 的小部件?
我尝试了各种 this.setState (() {})。我已经换出了无状态类中的小部件。
不幸的是,这两种方法都不能解决问题。
小部件 _createCheckbox(int dataArrayPosition, int elementCurrentPosition, int inputCurrentPosition) { 输入 inputElement = contextData.data[dataArrayPosition].element[elementCurrentPosition].input[inputCurrentPosition];
return Column(
children: <Widget>[
Row(
children: <Widget>[
Checkbox(
value: inputElement.checkBoxValue,
onChanged: (bool newValue) {
setState(() {
contextData.data[dataArrayPosition].element[elementCurrentPosition].input[inputCurrentPosition].checkBoxValue = newValue;
});
}),
Text(inputElement.labelForValue),
],
),
],
);
}
有谁知道在调用 onChanged 时仅重新渲染此示例中的“受影响”小部件的方法?