Flutter:无法将参数类型分配给参数

时间:2020-05-23 15:37:21

标签: flutter parameters arguments

我一直在尝试创建一个可重复使用的按钮小部件,只需要输入3个参数,即说什么,去哪里以及如何进行(淡入淡出,滑动等),我设法获得了前两个参数很好,但是第三个给我问题。

我一直在尝试遵循IDE的建议修复问题,并在网上寻找类似的问题,但它们似乎都与String有关。

我遇到了问题参数类型 'TransitionFadePageRoute'(我的转换方法的名称) 不能分配给参数类型“功能”。

这是按钮;

class ButtonWide extends StatefulWidget {
ButtonWide({this.text, this.navigationMethod, this.navigationDestination});

  final String text;
  final Function navigationMethod;
  final Widget navigationDestination;

  @override
  _ButtonWideState createState() => _ButtonWideState(navigationMethod);
}

class _ButtonWideState extends State<ButtonWide> {
  final Function navigationFunction;

  _ButtonWideState(this.navigationFunction);
  @override
  Widget build(BuildContext context) {
    return ClipRRect(
      borderRadius: BorderRadius.circular(17.0),
      child: RaisedButton(
        splashColor: Theme.of(context).accentColor,
        color: Theme.of(context).primaryColor,
        onPressed: () => Navigator.push(
            context, navigationFunction(widget: widget.navigationDestination)),
        padding: EdgeInsets.zero,
        child: Container(
          width: MediaQuery.of(context).size.width-125,
          height: 45.0,
          child: Center(
            child: Text(widget.text, style: TextStyle(color: Colors.white)),
          ),),),);} }

我尝试摆弄决赛(将功能更改为小部件,或者甚至是动态的,暂时起作用但单击时会崩溃)以查看它是否可以修复,它说这里的navigationFunction似乎是问题所在。 Navigator.push(context, navigationFunction(widget: widget.navigationDestination)), 我尝试通过使用widget.navigationMethod(在需要时进行重构)来简化它,最后将其放置在有状态的小部件中。

这就是构建时的称呼方式

ButtonWide(
                text: 'Log In',
                navigationMethod: TransitionFadePageRoute(),
                navigationDestination: LoginLogin(),
              ),

这可能可行吗?在我的脑海中这很有意义,但是我对此并不陌生。我是否应该为不同的过渡方法创建不同的按钮。

0 个答案:

没有答案