• flutter 莫名其妙错误集锦


    1、回调函数的时候,报错:

    ════════ Exception caught by gesture ═══════════════════════════════════════════════════════════════
    The following NoSuchMethodError was thrown while handling a gesture:
    The method 'call' was called on null.
    Receiver: null
    Tried calling: call()
    
    When the exception was thrown, this was the stack: 
    #0      Object.noSuchMethod (dart:core-patch/object_patch.dart:53:5)
    #1      _BillAddPageState.build.<anonymous closure>.<anonymous closure> (package:flutter_bcd/pages/bill/bill_add_page.dart:139:19)
    #2      _InkResponseState._handleTap (package:flutter/src/material/ink_well.dart:706:14)
    #3      _InkResponseState.build.<anonymous closure> (package:flutter/src/material/ink_well.dart:789:36)
    #4      GestureRecognizer.invokeCallback (package:flutter/src/gestures/recognizer.dart:182:24)
    ...
    Handler: "onTap"
    

      

           return InkWell(
                    onTap: () {
                      setState(() {
                        _selectedIndex = index;
                      });
                      print(_scaffoldKey);
                      // 调用 回调函数必须加括号
                      _showBottomSheetCallback();
                    },
                    child: Container(
                      alignment: Alignment.center,
                      padding: EdgeInsets.only(bottom: 10),
                      color: flag ? Colors.amber : Colors.transparent,
                      child: Column(
                        children: <Widget>[
                          Expanded(child: categoryList[index].icon),
                          Text(
                            categoryList[index].title,
                            style: TextStyle(
                              fontSize: 14,
                              color: Color(0xFF333333),
                            ),
                          ),
                        ],
                      ),
                    ));
    

      空指针这种错误,一般是自己的程序逻辑问题:

    解决方法就是判空:

    // 调用 回调函数必须加括号
    if (_showBottomSheetCallback != null) {
    _showBottomSheetCallback();
    }

    2、setState() or markNeedsBuild() called during build.

    onTap: () {
                        setState(() {
                          _selectedIndex = index;
                          print(_scaffoldKey);
                          // 调用 回调函数必须加括号
                          WidgetsBinding.instance.addPostFrameCallback((_){
                            // 通过addPostFrameCallback可以做一些安全的操作,在有些时候是很有用的,它会在当前Frame绘制完后进行回调,并只会回调一次,如果要再次监听需要再设置。
                            print("Frame has been rendered");
                            if (_showBottomSheetCallback != null) {
                              _showBottomSheetCallback();
                            }
                          });
    
                        });
    
                      },
    

      

    www.beicaiduo.com
  • 相关阅读:
    PKU1008
    PKU 1007
    PKU 3983
    PKU 1005
    PKU1004
    PKU 1003解题
    new.target
    debugger 关键字
    React 高阶组件
    CSS|规范
  • 原文地址:https://www.cnblogs.com/hoge66/p/13286929.html
Copyright © 2020-2023  润新知