Redux如何同步state中的数据?

就以segmentfault的问答系统为例,简化一下,有两个Top Component,一个是Dashboard,一个是User,Dashboard会展示当前的问题列表,User会显示个人信息,同时显示与这个人相关的问题列表,那么在state我设计的model是这样的:

{
    'dashboard': {
        'questions': []
    },
    'users':[
        {
            'id': 1,
            'nickname': 'blabla',
            'questions': []
        }
    ]
}

user和dashboard中可能会有相同的问题,那如何处理两个对象之间的同步呢?比如在User页面我删除了一个问题或者改变了其状态,当切换到dashboard时如何能立即显示出来呢?

我想到的方法:

  • 每次切换页面都从后台刷新,这样保证获取的对象是最新的【但存在的问题是可能有延时,请求也可能失败】

  • 在reducer中查找相关的对象,并做相应的修改【这里给出的其实是一个最简单的例子,在实际项目中,state中的结构要复杂得多,查找对象就会特别麻烦】

或者大家都是怎么设计state来防止这种问题的?

阅读 2.8k
1 个回答

单独放questions,不同页面筛选显示。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题