【问题标题】:Passing multiple rows of data in flutter在颤振中传递多行数据
【发布时间】:2020-09-27 18:59:42
【问题描述】:

如何将多行数据从一个屏幕传递到第二个屏幕,而不会使传递的第一个数据的值过载?

        onPressed: () {
              setState(() {
                Navigator.of(context).push(MaterialPageRoute(
                    builder: (context) => new orderpage(
                        '${widget.productName.toString()}',
                        '$total',
                        counter,
                        check_tandeef,
                        check_makwa,
                        sab8a)));

【问题讨论】:

  • 欢迎来到 StackOverflow 并祝贺您发布您的第一个问题。如果您可以通过添加更多信息来更新您的问题,那将会很有帮助。您发布的代码未显示您尝试实现的预期结果/实际结果。

标签: flutter dart


【解决方案1】:

我想我明白你的意思,我不确定。

要传递值,您可以在导航器中使用 args 并在第二个屏幕中使用这些值。 https://flutter.dev/docs/cookbook/navigation/navigate-with-arguments

另一种方法是使用 InheritedWidget 类,因此您可以在所有小部件中使用相同的对象实例,而无需通过上下文传递它们

https://api.flutter.dev/flutter/widgets/InheritedWidget-class.html

【讨论】:

    【解决方案2】:

    我假设您的意思是您不想将多组相同的数据传递到下一个屏幕。您可以通过创建一个包含所有参数的类来做到这一点,然后将一个列表传递给您的屏幕。

    class myViewModel{
     String param1;
     String param2;
     int param3;
     bool param4;
    
     myViewModel(this.param1,this.param2,this.param3,this.param4);
    }
    

    创建列表并用类的实例填充它:

    listOfParams = List<myViewModel>();
    

    通过列表:

    onPressed: () {
                  setState(() {
                    Navigator.of(context).push(MaterialPageRoute(
                        builder: (context) => new orderpage( 
                         listOfParams
                 )));
    

    【讨论】:

      猜你喜欢
      • 2021-03-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-07-27
      • 2021-09-12
      • 2020-08-10
      • 2020-12-15
      • 1970-01-01
      相关资源
      最近更新 更多