小编Fai*_*cia的帖子

BLOC 状态更改后有状态小部件未重建

我无法理解为什么我的 Stateful 小部件在重建后没有更新状态。我有一个有状态的小部件,负责每秒递减一个计数器,因此它收到一个初始值,我将此初始值传递给状态并开始递减它。

它还具有一个按钮,当按下该按钮时,会向我的块发送一个事件,该块会使用新的初始值重建有状态小部件,事实是,它确实发送并更新初始值,但计数器继续递减旧值,我没有知道为什么。这是代码示例:

小部件

void main() => runApp(
      BlocProvider(
        create: (context) => TBloc(),
        child: MaterialApp(
          home: Scaffold(
            body: BlocBuilder<TBloc, BState>(
              builder: (context, state) {
                if (state is BState) {
                  return Column(
                    children: [
                      Counter(state.value),
                      FlatButton(
                        child: Text("tap"),
                        onPressed: () =>
                            BlocProvider.of<TBloc>(context).add(BEvent(200)),
                      ),
                    ],
                  );
                }
                return Container();
              },
            ),
          ),
        ),
      ),
    );

class Counter extends StatefulWidget {
  final int initialValue;

  Counter(this.initialValue);

  @override
  CounterState createState() => CounterState(this.initialValue);
}

class CounterState extends State<Counter> {
  Timer timer;
  int value;

  CounterState(this.value);

  @override …
Run Code Online (Sandbox Code Playgroud)

flutter flutter-layout

3
推荐指数
1
解决办法
3160
查看次数

标签 统计

flutter ×1

flutter-layout ×1