如何使用提供者相同模型在flutter中将obj数据从列表屏幕传递到详细信息屏幕

时间:2020-07-23 07:25:12

标签: flutter state-management provider-model

当我将obj数据从列表传递到详细信息页面时,我的数据为空。

我不知道为什么?有人请指向正确的方向。

我使用相同的视图模型(ChangenotifierProvider)。

这是我的列表页面。单击时转到详细信息页面。

          Provider.of<DetailViewModel>(context , listen: false).updateData(
                    DetailCriteria(
                          Id: id,
                          Name: contactName,
                          shopName: shopName,
                        );
      Navigator.pushNamed(context, Routes.DETAILVIEW);

这是DetailViewModel。Base是changenotifier。当我在模型中到达调试数据时。

 class AgentDetailViewModel extends BaseViewModel{
    DetailCriteria detailCriteria = DetailCriteria();
    void updateData(DetailCriteria data){

       detailCriteria = data;

       notifyListeners();
     }
 }

当我调用我的detailObj为null时,这是详细信息页面。其他字符串也可以,只有obj null。

 @override
 Widget build(BuildContext context) {
// TODO: implement build
return MultiProvider(
  providers: [
    ChangeNotifierProvider<DetailViewModel>(
      create: (context) => DetailViewModel(),
    ),

  ],

         Consumer<DetailViewModel>(
                  builder: (context , mymodel , child){
                    return Container(
                      margin: EdgeInsets.only(left: 18 , right: 18 , top: 12 , bottom: 4),
                      child: Column(
                        mainAxisAlignment: MainAxisAlignment.start,
                        crossAxisAlignment: CrossAxisAlignment.start,
                        children: <Widget>[
                          agentDetailText(
                              mymodel.detailCriteria.shopName, 'Agent Name'), //this is custom 

到达detailView时我的detailCriteria为空。有人指向我。

0 个答案:

没有答案