我正在开发一个使用BLoC进行状态管理的应用程序,情况是这样的:我有一个具有DataType (SearchDelegate<SearchModel>
)模型的SearchDelegate,这个SearchDelegate使用一个API来获取SearchResults。当我在其中一个结果中使用一个名为onTap()
的变量中的信息时,我使用close(context, result)
并导航到新页面,在这个页面中,我想使用来自该模型的所有信息,问题是我不知道如何做到这一点。
当有人点击其中一个选项时,我的BuildResults的代码
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());
},
我如何传递这个参数并在UI中与Bloc一起工作?
发布于 2022-03-31 09:45:49
您可以在您的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));
},
发布于 2022-03-31 09:03:34
实际上,您可以将整个模型创建部分移动到单元中,然后将模型传递给您的状态类。一旦在state类中拥有了模型,就可以通过小部件树中的任何地方来访问它。
https://stackoverflow.com/questions/71696427
复制