NoSuchMethodError:方法'markNeedsBuild'在null上调用。接收方:null尝试过的调用:生产应用程序中的markNeedsBuild()

时间:2020-10-09 19:16:49

标签: flutter

我已在我的应用程序中添加了哨兵客户端,以便我可以跟踪问题。我无法在我的应用程序或开发过程中产生此问题。

我的实时应用程序中出现此异常

enter image description here

    system
    exception
    stacktrace
    frame
    filenameunparsed
    frame
    filename<asynchronous suspension>
    frame
    filenametournament.dart
    function_TournamentState._getTournamentData
    frame
    filenameframework.dart
    functionState.setState
    typeNoSuchMethodError

不确定用户遇到的问题的结果是什么。

下面是tournament.dart页中与此相关的代码。.屏幕的主要部分。

  class _TournamentState extends State<Tournament> {
      bool _isLoading = true;
      bool internet;
      var tournamentData;
      @override
      void initState() {
        internetCheck();
        _getTournamentData();
        super.initState();
      }

      
      _getTournamentData() async {
        if(!mounted) return;
        var res = await CallApi().getData('tournaments-listing');
        final body = json.decode(res.body);
        if(res.statusCode==200){
            var data = TournamentAndEvent.fromJson(body);
            store.dispatch(TournamentData(data));
            setState(() {
              _isLoading = false;
            });
        }

这样的ui代码

      SingleChildScrollView(
            child:  Column(
              children: _runningLeagues(),
            ),
          ),




List<Widget> _runningLeagues(){
  List<Widget> leagues = []; 
  for(var tr in store.state.tournamentData.runningTr){
     leagues.add(Running(tr)); 
  }
  return leagues; 
}

要注意的另一件事是,在我的第一个屏幕中,我缓存了数据并立即显示它,然后当原始数据到达时,我用新数据更新ui并将其保存在sharedpreference中。

因此,当用户在主页屏幕和本比赛屏幕之间切换时,可能会出现此问题。我不确定。该屏幕没有任何缓存等。

谢谢。

0 个答案:

没有答案