ブロック パターンの実装をテストするために使用するPostUpdaterWidget
拡張を作成しました。StatelessWidget
TextEditingControllers
final _usernameController = TextEditingController();
final _contentController = TextEditingController();
@override
Widget build(BuildContext context) {
return Column(
crossAxisAlignment: CrossAxisAlignment.center,
children: <Widget>[
TextField(
controller: _usernameController,
decoration: InputDecoration(hintText: "Post Username"),
),
TextField(
controller: _contentController,
decoration: InputDecoration(hintText: "Post Content"),
),
Container(
height: 16,
),
RaisedButton(
child: Text("Update Post"),
onPressed: () => _updatePost(context),
)
],
);
}
_updatePost(BuildContext context) {
print("Processing Post Update");
String username = _usernameController.text.trim();
String content = _contentController.text.trim();
Post post = new Post();
post.id = id;
post.username = username;
post.content = content;
id += 1;
print("Dispatching Post Update");
BlocProvider.of<PostBloc>(context).updatePost(post);
}
多くの例で、コントローラーを破棄する必要があることを見てきました。ただし、 a には関数へのメソッドはありoverride
ませdispose
んStatelessWidget
。
使用されているコントローラーを破棄する独自の破棄関数を作成し、このウィジェットを使用するユーザーのためにこのウィジェットの変数を作成して、破棄関数を呼び出せるようにすることを考えました。
しかし、私が本当にそれを行う必要があるのか、それともこの StatelessWidget が実際に独自に処理するのかを最初に知りたいのです。
自分の考えを進めるべきですか?または、これらのコントローラーを独自に破棄する可能性があるため、そのままにしておきます。これにより、メモリリークを心配する必要がなくなります。