Flutter-如何在继承的小部件中的已定义函数中使用参数

时间:2018-12-23 15:49:17

标签: dart flutter

我在Inherited窗口小部件中有函数,我想将此函数与参数一起使用,但是我不知道该怎么做。例如,下面的函数可以很好地用于继承的小部件中:

final Function onTap;

但是我想使用以下内容:

final Function onTap(String name);

任何人都知道这是否可以通过某种方式完成,在这种情况下又如何?任何帮助或输入表示赞赏,谢谢!

2 个答案:

答案 0 :(得分:2)

不确定这就是您要执行的操作

您可以使用typedef定义回调接口。

import 'package:flutter/material.dart';

typedef void NameTapCallback(String name);

class FooWidget extends StatelessWidget {
  final NameTapCallback onTap;

  const FooWidget({Key key, this.onTap}) : super(key: key);

  @override
  Widget build(BuildContext context) {
    return Column(
      children: <Widget>[
        RaisedButton(
          onPressed: () {
            onTap('Peter');
          },
          child: Text('Peter'),
        ),
        RaisedButton(
          onPressed: () {
            onTap('Paul');
          },
          child: Text('Paul'),
        )
      ],
    );
  }
}

// Usage:
var myFooWidget = FooWidget(
  onTap: (name) {
    print('$name tapped');
  },
);

答案 1 :(得分:1)

您可以使用

onTap: () => onTap('foo')

代替

onTap: onTap

如果您想传递其他参数