【问题标题】:Passing data to a deep ancestor widget in flutter将数据传递给 flutter 中的深层祖先小部件
【发布时间】:2022-11-27 17:34:20
【问题描述】:

我有八个屏幕。第 7 个屏幕有数据要发送到最后一个屏幕,我该如何解决这个问题?

我试着把它从一个父母传给另一个父母,但这太麻烦了

【问题讨论】:

  • 创建一个提供者/类或静态变量或使用共享首选项或任何你喜欢的!!!!

标签: flutter


【解决方案1】:

你为什么不使用像provider这样的状态管理??? 如果您不使用状态管理,将很难逐步使用从一个屏幕到另一个屏幕的数据。 你可以像这样创建一个类:

class ExpampleClass extends ChangeNotifier {

String? _yourData;

void setYourData(String? newData){
_yourData = newData;
 notifyListeners();
}

String? get yourData => _yourData;

}

正如您在更改_yourData时看到的那样,它会告诉您,您可以通过提供ExpampleClass在任何您想要的地方使用此数据,甚至您可以在第一个屏幕中设置数据并在最后一个屏幕中使用该数据而不传递数据一步一页。

Provider.of<ExpampleClass>(context, listen: false).yourData;

甚至你可以在你的小部件中使用这些数据,就像这样,在你想要的任何地方使用Consumer

Consumer<ExpampleClass>(
        builder: (context, exampleClassProvider ,snapshot) {
          return Text(exampleClassProvider!.yourData);
        }
      )

***小心在项目的第一个根类中使用 MultiProvider 来定义提供程序。

这是provider package文档。仔细阅读。

【讨论】:

    猜你喜欢
    • 2021-07-02
    • 1970-01-01
    • 1970-01-01
    • 2019-08-29
    • 2021-03-31
    • 1970-01-01
    • 2021-01-27
    • 2019-03-26
    相关资源
    最近更新 更多