wuba/Fair

关于 #344 次改动的问题反馈

zmtzawqlp opened this issue · 2 comments

#344 这个改动,是为了能绑定多个参数的方法吗?

    _bindFunctionsMap['runtimeInvokeMethod'] = (funcName, [props]) {
      var arguments;
      if (props != null) {
        arguments = [];
        arguments.addAll(props);
      }
      return runtime?.invokeMethod(pageName, funcName, arguments);
    };

比如

void _onImageTap(int index,int xx)

之前只能传一个。如果有多个参数的时候。之前是传的 List 过去的。

现在这样改了之后有个问题:
下面这种场景会报错,而且很难用一个通用的写法来支持。

class MyWidget extends StatefulWidget {
  const MyWidget({super.key});

  @override
  State<MyWidget> createState() => _MyWidgetState();
}

class _MyWidgetState extends State<MyWidget> {
  void _click(int i) {}
  @override
  Widget build(BuildContext context) {
    return MyWidget1(
      click: _click,
    );
  }
}

class MyWidget1 extends StatelessWidget {
  const MyWidget1({super.key, required this.click});

  final void Function(int i) click;
  @override
  Widget build(BuildContext context) {
    return const Placeholder();
  }
}

收到,我先看下

fixed by #350