如何使用带有BLoC Flutter的小部件中的实体(模型)

6qftjkof  于 2022-11-17  发布在  Flutter
关注(0)|答案(2)|浏览(117)

我正在开发一个使用BLoC进行状态管理的应用程序,情况如下:我有一个SearchDelegate,它的模型为DataType(SearchDelegate<SearchModel>),这个SearchDelegate使用一个API来获取SearchResults。当我在一个结果中使用onTap()时,我在一个名为searchResults的变量中获取信息,之后我使用close(context, result)并导航到新页面,在此页面中,我希望使用该模型中的所有信息,问题是我不知道该怎么做。
当有人点击其中一个选项时,生成结果的代码

onTap: () {
 final searchResult = SearchModel(
  position: LatLng( search.lat[0], search.lng[1]),
  name: search.text,
  description: search.placeName
 );
close(context, result);
pushToPage(context, const RoutePage());
},

如何传递此参数并在具有Bloc的UI中使用它们?

nvbavucw

nvbavucw1#

您可以在RoutePage小部件中设置一个必需参数,然后在导航到RoutePage屏幕时,您可以传递该参数

// RoutePage widget class constructor 
const RoutePage({Key? key, required this.subjectModel})
      : super(key: key);
  final SearchModel searchModel;
// while navigation
onTap: () {
 final searchResult = SearchModel(
  position: LatLng( search.lat[0], search.lng[1]),
  name: search.text,
  description: search.placeName
 );
close(context, result);
pushToPage(context,   RoutePage(searchModel:searchResult));
},
8fq7wneg

8fq7wneg2#

实际上,您可以将整个模型创建部分移到块中,然后将模型传递给状态类。一旦您将模型放在状态类中,您就可以通过部件树中的任何位置的Bloc访问它。

相关问题