尝试显示Flutter快餐栏会引发异常错误

时间:2019-06-10 21:03:23

标签: flutter

在将其标记为重复之前,请先看一下,我一直在尝试this thread,但我无法使其正常工作。 我正在尝试使我的学习应用程序显示一个快餐栏,是的,我运行了Google Cookbook示例,它可以工作,但是我试图挑战自己做的其他事情,基本上是什么,只是一个带有两个按钮的支架增加和减少,当索引为零时,我要显示索引为零的小吃店,不能减少得更多。所以我得到了这个按钮,onPressed方法调用了传递上下文参数的_onTapPrevious方法,但是我不确定这是传递上下文的正确方法。

new RaisedButton( 
  padding: const EdgeInsets.all(8.0),
  textColor: Colors.white,
  color: Colors.redAccent,
  onPressed: () => _onTapPrevious(context),
  child: new Text("Previous"),
),

这是我创建的快餐栏的_onTapPrevious方法,还检查小部件索引是否大于0,如果可以,则可以减小索引,当它达到0时应显示快餐栏。

_onTapPrevious(BuildContext context) {
    final snackBar = SnackBar(content: Text("Index 0, can't decrease more."));
    setState(() {
      if (widget.index > 0) {
        widget.index--;
      } else {
       Scaffold.of(context).showSnackBar(snackBar);
     }
    });
  }

我得到的错误:

flutter: Another exception was thrown: Scaffold.of() called with a context that does not contain a Scaffold.

1 个答案:

答案 0 :(得分:0)

尝试添加

final _scaffoldKey = GlobalKey<ScaffoldState>();

上课,然后在脚手架中:

 key: _scaffoldKey,

最后:

_scaffoldKey.currentState.showSnackBar(snackBar);

希望有帮助!