如何正确地将值传递给Flutter中任何窗口小部件的事件处理函数?

翁布瑞林

我在列表视图中遇到问题。我希望我的ListView项目提供按钮以对单个项目执行操作。但是我传递给他们的事件处理程序被意外地反复调用。但是,我希望仅在调用孩子的按钮时才能调用它。我做错了什么?

import 'package:flutter/material.dart';
import 'package:horaires_ratp/model/Database.dart';

class StationsList extends StatefulWidget {
  @override
  State<StatefulWidget> createState() {
    return _StationsListState();
  }
}

class _StationsListState extends State<StationsList> {
  List<Station> _stations = List<Station>();


  _StationsListState() {
    Station().select().toList().then((value) {
      setState(() {
        _stations = value;
      });
    });
  }

  void _handleStationDelete(Station station){
    //station.delete(true);
    print("called");
    Station().select().toList().then((value) {
      setState(() {
        _stations = value;
      });
    });

  }


  @override
  Widget build(BuildContext context) {
    return Container(
        child: ListView.builder(
            itemCount: _stations.length,
            itemBuilder: (context, index) {
              return StationComponent(_stations[index], _handleStationDelete);
            }));
  }
}

class StationComponent extends StatelessWidget {
  final Station _station;
  final Function _handleDelete;

  StationComponent( this._station,  this._handleDelete);

  @override
  Widget build(BuildContext context) {
    return Container(
      child: Card(
        child: Container(
            padding: EdgeInsets.all(16),
            child: Column(
              crossAxisAlignment: CrossAxisAlignment.start,
              children: <Widget>[
                Row(
                  children: <Widget>[
                    Text(_station.name, textAlign: TextAlign.left),
                    IconButton(icon: Icon(Icons.delete), onPressed: _handleDelete(_station))
                  ],
                ),
                Row(
                  children: <Widget>[Row(children: <Widget>[])],
                )
              ],
            )),
      ),
    );
  }
}
文件

您通过这样的功能

onPressed: onPressFunction

如果需要一些价值的话

onPressed: () => onPressFunction(value)

而且不喜欢

onPressed: onPressFunction(value)

所以你的代码应该是

IconButton(icon: Icon(Icons.delete), onPressed:() => _handleDelete(_station))

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何正确地将参数传递给函数?[批]

来自分类Dev

如何正确地将“this”传递给函数?

来自分类Dev

在React中,如何正确地将输入值从子级传递给父级

来自分类Dev

QTest无法将事件传递给子窗口小部件

来自分类Dev

QTest无法将事件传递给子窗口小部件

来自分类Dev

如何将点击处理程序从父母正确地传递给孩子?

来自分类Dev

将函数传递给窗口小部件工厂窗口小部件,而不执行它

来自分类Dev

如何正确地将Win32类对象传递给函数

来自分类Dev

如何正确地将弱引用传递给函数的调用者?

来自分类Dev

如何正确地将值传递给Google Maps URL方案回调?

来自分类Dev

QML:如何从 C++ 代码正确地将属性传递给 PluginParameter 值?

来自分类Dev

如何正确地管理活动的窗口小部件,而不是失去它们的焦点或记住变量的焦点

来自分类Dev

您如何正确地将字节对象传递给Python中的新线程?

来自分类Dev

如何正确地将args数组传递给Java中的方法?

来自分类Dev

将参数传递给Flutter中的无状态小部件

来自分类Dev

将参数传递给QStackedWidget中的小部件的构造函数

来自分类Dev

如何创建对象列表以传递给Flutter中的小部件?

来自分类Dev

如何正确地将阿拉伯语脚本插入Tkinter文本小部件?

来自分类Dev

如何正确地将小部件放置在鼠标下方的QGraphicsView上?

来自分类Dev

如何正确地将表单数据传递给CodeIgniter中的数据库功能

来自分类Dev

您如何正确地将视图中的post变量传递给CodeIgniter中的控制器?

来自分类Dev

如何正确地引用作为地址传递给函数的char **指针?

来自分类Dev

将函数的返回值传递给事件处理程序

来自分类Dev

如何正确地将会话值传递给方法feed()

来自分类Dev

如何正确地将Unicode传递给Perl的DBI层?

来自分类Dev

如何正确地将完整文件名传递给`cmd / c`?

来自分类Dev

如何正确地将数据传递给<input list>属性?

来自分类Dev

如何从SwiftUI LazyVGrid正确地将“单元项”传递给.sheet?

来自分类Dev

如何正确地将文件夹名称传递给Shell脚本?

Related 相关文章

  1. 1

    如何正确地将参数传递给函数?[批]

  2. 2

    如何正确地将“this”传递给函数?

  3. 3

    在React中,如何正确地将输入值从子级传递给父级

  4. 4

    QTest无法将事件传递给子窗口小部件

  5. 5

    QTest无法将事件传递给子窗口小部件

  6. 6

    如何将点击处理程序从父母正确地传递给孩子?

  7. 7

    将函数传递给窗口小部件工厂窗口小部件,而不执行它

  8. 8

    如何正确地将Win32类对象传递给函数

  9. 9

    如何正确地将弱引用传递给函数的调用者?

  10. 10

    如何正确地将值传递给Google Maps URL方案回调?

  11. 11

    QML:如何从 C++ 代码正确地将属性传递给 PluginParameter 值?

  12. 12

    如何正确地管理活动的窗口小部件,而不是失去它们的焦点或记住变量的焦点

  13. 13

    您如何正确地将字节对象传递给Python中的新线程?

  14. 14

    如何正确地将args数组传递给Java中的方法?

  15. 15

    将参数传递给Flutter中的无状态小部件

  16. 16

    将参数传递给QStackedWidget中的小部件的构造函数

  17. 17

    如何创建对象列表以传递给Flutter中的小部件?

  18. 18

    如何正确地将阿拉伯语脚本插入Tkinter文本小部件?

  19. 19

    如何正确地将小部件放置在鼠标下方的QGraphicsView上?

  20. 20

    如何正确地将表单数据传递给CodeIgniter中的数据库功能

  21. 21

    您如何正确地将视图中的post变量传递给CodeIgniter中的控制器?

  22. 22

    如何正确地引用作为地址传递给函数的char **指针?

  23. 23

    将函数的返回值传递给事件处理程序

  24. 24

    如何正确地将会话值传递给方法feed()

  25. 25

    如何正确地将Unicode传递给Perl的DBI层?

  26. 26

    如何正确地将完整文件名传递给`cmd / c`?

  27. 27

    如何正确地将数据传递给<input list>属性?

  28. 28

    如何从SwiftUI LazyVGrid正确地将“单元项”传递给.sheet?

  29. 29

    如何正确地将文件夹名称传递给Shell脚本?

热门标签

归档