2

我正在重构代码以分离一小块小部件。每一个都有几列TextFields。我有两个选项来完成任务:

  1. 选择StatelessWidget,因为它具有更高的性能,可能会将 TextEditingController 相关代码放在子小部件之外。onChanged或者在事件中包含一些逻辑。但是仍然有一些事件,例如clear text无法放入onChanged事件

  2. 选择我是否在每个子小部件中StatefulWidget使用包含。TextEditingController

如何在将代码重构为这样的小部件之间StatelessWidget以及何时进行选择?StatefulWidget


更新

这是我目前的结论,如果不正确,可以更新。

  • 更喜欢放在parentFocusNodeTextEdit,因为它与兄弟 focusNode 和 parentNode 相关;
  • 更喜欢放入父级,这在诸如滚动到屏幕外的TextEdtingController情况下很有用,这将使整个小部件卸载。状态将被保留。TextFieldListItem
  • 当自己输入错误时,更喜欢animation self像摇晃一样。TextField因为它是TextField与父母无关的特征。
4

1 回答 1

1

针对评论部分的讨论进行编辑:

将代码重构为更小的StatefulWidgets. 并且parent应该有一个函数来通过调用其中的函数来更改嵌套的 TextFields 的内容及其animation行为,正如您之前指出的那样,您需要管理此行为。

于 2019-05-25T12:38:19.380 回答