翩翩。把数据传回特定的列表项目

问题描述 投票:0回答:1

我正试图将数据发送到屏幕上的一个特定列表项。

其逻辑是,您点击列表中的特定卡片,它将打开第二个屏幕,其中有一个输入字段(见下图)。然后你提交你的输入,它就会改变第一个屏幕上那个特定卡片的值。

实现这个目标的最佳方法是什么?

enter image description here enter image description here

flutter dart flutter-layout
1个回答
1
投票

你可以这样做。

而不是只推送到另一个页面,等待返回。

final data = await Navigator.push(context,
    MaterialPageRoute(builder: (context) => InputScreen()));

setState(()
   myList.add(data); //do whatever you want with the return here
});

而在你的InputScreen中,你可以这样做。

Navigator.of(context).pop(data);

另外,如果你的用户按下了手机的后退键,它将返回null,所以你需要处理这个问题。


0
投票

你可以通过以下步骤来实现。

1) 在 onTap 的函数中,添加以下代码等待结果。

                     // on tap function of your card
   onTap: () async {
   // navigate to the second screen and wait for input user enters
         final result = await Navigator.push(context
                     MaterialPageRoute(builder: (context) => SecondScreen()));

         // call setstate to see your changes 
         setState(() {
         // add the input to your list
         myList.add(result);
          );
        },

1) 在你的提交按钮的onTap函数中,添加以下代码将结果发送回来。

 // ontap function of your submit button
 onTap: () {
       // value is what the user has inputted in the text field
       Navigator.pop(context, value);
 },
© www.soinside.com 2019 - 2024. All rights reserved.