flutter 动态地将变量数据从一个小部件共享到另一个小部件

wwodge7n  于 2022-11-17  发布在  Flutter
关注(0)|答案(3)|浏览(189)

我有一个创建DataTableStatefulWidget post_view,用于填充DataTable的数据来自另一个名为Post的类中的一个静态方法:
`

static  generateData(){

  List<Post> postList= [];

  postList.add(Post(title: "Coolest Post", numDownVotes: 6, numUpVotes: 9));
  postList.add(Post(title: "Covid-19 vaccine found!", numDownVotes: 3, numUpVotes: 67));
  postList.add(Post(title: "Unreal ending to basketball game", numDownVotes: 2, numUpVotes: 23));
  postList.add(Post(title: "Sample Post", numDownVotes: 2, numUpVotes: 6));
  postList.add(Post(title: "What A Save!", numDownVotes: 5, numUpVotes: 34));

  return postList;
}

我在表中有DataCells,这样,赞成票/反对票的数量在数据单元格中的行小部件中,沿着一个图标按钮,分别用于更改或增加/减少赞成票/反对票的数量。因此,我在post_view中声明了一个变量'_posts',它调用generateData()并显示数据。但我希望能够操作这些数据并将其传递给另一个小部件BarGraph,它将生成一个动态数据的条形图。 下面是我的BarGraph小部件:

class BarGraph extends StatefulWidget {
  BarGraph({Key? key, required this.tableData}) : super(key: key);

  List<Post>? tableData;
  @override
  State<BarGraph> createState() => _BarGraphState();
}

这里的问题是TabelData`根本无法访问,但我希望能够获得标题、numupvotes和numdownvotes,以便能够在图表中显示它们。我尝试使用getter,但空值检查操作符不起作用。我完全陷入困境,任何帮助都将不胜感激!

qoefvg9y

qoefvg9y1#

找到了答案!使用widget.tableData我能够访问传递到该变量的数据。

nuypyhwy

nuypyhwy2#

使用任何状态管理方法如何,例如:Bloc、Provider等。使用这些库可以解决您的问题,并使您的代码更有条理。

class ManagePost extends Cubit<List<Post>> {
  List<Post> postList = [];
  void addPost(Post post) {
    postList.add(Post);
    emit(postList);
  }

  void deletePost() {}
  void updateVote() {}
  void getAllPost() {}
}

接下来,在BlocBuilder中 Package 你的视图,它将监听帖子列表的状态并更新UI。

68de4m5k

68de4m5k3#

您可以提升状态或使用状态管理包
参考文献

状态管理包

相关问题