如何将小部件自身的数据传递给函数

时间:2019-06-07 08:08:22

标签: flutter dart

学习Flutter并提出了这个问题。我不知道如何引用小部件自己的数据。我的解决方案可能不是最佳解决方案。

class ClassA extends StatelessWidget {

    void myFunction(MyDataClass data) {...}

    @override
    Widget build(Buildcontext context) {
    return ClassB(
            data: MyDataClass(...),
            onTap: myFunction(???),
        );
    }
}

我需要将ClassB的数据(MyDataClass)传递给函数myFunction。有什么办法可以做到这一点?

2 个答案:

答案 0 :(得分:0)

我认为您正在寻找类似的舒缓方法。尝试此方法

class ClassB extends StatelessWidget {
   Function(MyDataClass) onTap;

   ClassB(this.onTap);


   @override
   Widget build(BuildContext context) {
        return RaisedButton(
              onPressed: () {
                     MyDataClass yourData = MyDataClass(...);
                     onTap(yourData);
              },
        )
   }
}
class ClassA extends StatelessWidget {

    void myFunction(MyDataClass data) {...}

    @override
    Widget build(Buildcontext context) {
    return ClassB(
            data: MyDataClass(...),
            onTap: myFunction,
        );
    }
}

答案 1 :(得分:0)

我敢肯定有一种更聪明的方法可以做到这一点,但至少可以奏效:

class ClassA extends StatelessWidget {

    void myFunction(MyDataClass data) {...}

    MyDataClass someData = MyDataClass(...);

    @override
    Widget build(Buildcontext context) {
    return ClassB(
            data: someData,
            onTap: () => myFunction(someData),
        );
    }
}