将数据传递给不是父/子的小部件 - Flutter/Dart

问题描述

我是 Flutter 的新手,需要一些帮助! 我知道如何将数据从父级传递给子级,反之亦然。 但是如何从既不是父级也不是子级的 Widget 传递数据?

解决方法

你把它传回父级,直到你命中一个是两者祖先的父级,然后你将它传递给子级,直到你命中它的目的的子级。

如果这看起来工作量太大,因为它们在树中相距太远,请考虑另一种 state management 方法。

,

这里有多个选项:

  1. 使用状态管理(如果您只想将参数从一个屏幕发送到另一个屏幕,则不推荐)

  2. 使用这样的东西:

    class ClassName extends StatefulWidget {
    
        final int param1;
    
        const ClassName({Key key,this.param1}) : super(key: key);
    
    }
    

当你想路由到这个屏幕时,你可以像这样传递param1:

Navigator.of(context).push(ClassName(param1: value));
  1. 列表项 你可以使用一些像 autoRoute
  2. 这样的库