我应该自行处置 ValueNotifier 对象吗?保持原样安全吗?

Cod*_*ard 5 flutter flutter-widget

我有一个自定义的无状态小部件,它有一个ValueNotifier参数作为构造函数参数。

\n\n

请参阅下面的片段。

\n\n
class MyWidget extends StatelessWidget {\n  @override\n  Widget build(BuildContext context) {\n    return FlatChoiceChipList(\n      choiceList: ["first item","second item","third item"],\n      selectedIndex: ValueNotifier<int>(0),\n      onSelected: (index) {},\n    );\n  }\n}\n
Run Code Online (Sandbox Code Playgroud)\n\n

\xe2\x80\x8b

\n\n

好吧,正如您在上面的代码片段中看到的,在构建方法中我创建了一个 ValueNotifier 对象,并且稍后不会将其释放。

\n\n
    \n
  1. 在构建方法中创建 ValueNotifier 是否安全?
  2. \n
  3. 我应该在父 Stateful Widget 中创建 ValueNotifier 并在父 Stateful 小部件被处置时自行处置它吗?
  4. \n
\n

小智 0

1.如果你愿意的话可以,但是为什么不在FlatChoiceChipList小部件中声明它呢?

2.只有添加听众我才相信。这是处置方法:

@mustCallSuper
void dispose() {
  assert(_debugAssertNotDisposed());
  _listeners = null;
}
Run Code Online (Sandbox Code Playgroud)

但当您不再需要它时,最好将其丢弃。