美文网首页
[Flutter] 事件的传递(回调)

[Flutter] 事件的传递(回调)

作者: BudSwift | 来源:发表于2020-08-05 21:39 被阅读0次

    在一个子视图上有事件需要操作数据的情况下,应该想到:

    • 由数据的持有者本身(model)进行数据操作
    • 将事件回调到数据持有者进行处理
      在 Flutter 中子视图的事件可以通过闭包函数的形式进行回调
      参考前面的文章[列表的使用和 widget 的封装](https://www.jianshu.com/p/35a98564908d的示例,为 MessageCard 新增一个回调函数。
    class MessageCard extends StatelessWidget {
        Message data;
        Function delete; // 点击删除按钮时的回调
        
        // 提供一个语义清晰的构造器
        MessageCard({this.data, this.delete});
    
        Widget build(BuildContext context) {
          return Column(
           children: <Widget>[
                 Text(data.text),
                  FloatButton(
                    onPressed: delete, 
                    label: Text("删除"), 
                    icon: Icon(Icons.delete)),
                  ],
            ),
        }
    }
    

    而对应地在构造 MessageCard 时需要传入闭包函数,并且嵌套在 setSate() 中。

    // main.dart
    MessageCard(data: item, delete: () {
            setState(() {
                list.remove(item);
            });
    });
    ```““‘

    相关文章

      网友评论

          本文标题:[Flutter] 事件的传递(回调)

          本文链接:https://www.haomeiwen.com/subject/tlxarktx.html