需要在bloc的状态变化处,手动调用setState()方法更新UI。例如,使用flutter_bloc库时,在builder方法中使用bloc的监听方法来更新widget的状态,但是如果bloc的状态不变,widget并不会更新。解决方法是在onPressed等触发状态变化的方法中,手动调用setState()方法,强制更新widget的状态。示例代码如下:
FlatButton(
onPressed: () {
BlocProvider.of(context).add(MyEvent());
setState(() {}); //手动调用setState()方法更新UI
},
child: Text('My button'),
);
这样,当MyBloc的状态变化时,UI就会立即更新,而不需要等待下一次重新构建widget。