【问题标题】:Flutter bloc state value updated but navigate value emptyFlutter bloc 状态值已更新,但导航值为空
【发布时间】:2021-07-27 01:02:22
【问题描述】:

我在我的 bloc 文件中使用此 context.read<SurveyBloc>().add(SurveyChanged(surveys: data)); 更新 BLOC 状态更新的值被打印,但在我导航到下一页后,值没有更新。也使用相同的区块。

块文件sn-p

if (event is SurveyChanged) {
      print("SurveyChanged:"+ event.surveys.survey_name);
      yield state.copyWith(surveys: event.surveys);

    }

这就是我更新我的集团并导航到下一页的方式

onTap: () {
            context.read<SurveyBloc>().add(SurveyChanged(surveys: data));
            Navigator.of(context).push(
                MaterialPageRoute(builder: (context) {
                  return SurveyView();
                }));
          }

surveyEvent.dart

import 'package:whfms_mobile_app/models/ModelProvider.dart';

abstract class SurveyEvent {}

class SurveyHome extends SurveyEvent{

}

class SurveyResultChanged extends SurveyEvent {
  final String surveyResult;
  SurveyResultChanged({this.surveyResult});
}
class SurveyModeChanged extends SurveyEvent {
  final String mode;
  SurveyModeChanged({this.mode});
}
class SurveyChanged extends SurveyEvent {
  final Surveys surveys;
  SurveyChanged({this.surveys});
}

class SaveSurveyChanges extends SurveyEvent {}

我的应用结构与this repo相同

【问题讨论】:

  • 能否分享一下您的活动代码
  • 事件代码更新,请查看repo链接,我想我需要修改app_navigator文件
  • 返回一个新状态检查答案
  • @Tasnuvaoshin 我在 bloc 文件中替换了它但没有工作
  • 好的,查看下一页。值为空?然后只检查 string 而不是 object 。因为如果任何对象元素为空,则有可能发生这种情况

标签: flutter bloc flutter-bloc flutter-navigation flutter-state


【解决方案1】:
newState = state.copyWith(surveys: event.surveys);
...
yield newState;

【讨论】:

    猜你喜欢
    • 2021-07-24
    • 2020-05-06
    • 2022-08-21
    • 2021-03-19
    • 2020-10-10
    • 2020-02-27
    • 2022-08-11
    • 2023-01-18
    • 2020-08-03
    相关资源
    最近更新 更多