求教各位 react里面使用redux

hanweimin
  • 80

现在一直被一个问题所困扰, 就是这个 redux 保存的值,

比如有一份数据结构是通过api获取下来的, 但是fetch下来之前, 页面就会渲染一次, 这个时候这个数据结构在redux里面不存在,就出现undefined的问题

另外也有说,应该在redux里面给一个初始值, 这个初始值又应该怎么样给? 我总不能把服务端的数据结构复制一份放到redux里面作为初始值吧? 像这样的需要通过服务端获取的数据结构很多,那岂不全都要复制一份下来。。。

然后我试着在redux创建一个 标识,即当数据结构还没有时,为false,已得到数据结构时,修改为true的状态,然后render渲染的时候去检测这个标识是true还是false, 但又出现一个问题,页面比较多, 那岂不所有的页面都要添加这么一个检测,

求教各位朋友,能指点一下, 万分感谢!

回复
阅读 1.2k
2 个回答
jump__jump
  • 2.5k

初始的数据结构根据 需要的 数据来写
比方说
我的用户信息 你存放在 redux 里面,而数据 初始值

user: {
    id: '',
    name: '',
    roles: []
}

如果 是 产品列表 就这样

productList: []

这样就是拥有初始值了, 调用 user.id 时候而不会爆undefined

ps: 修改答案
你也 可以 这样写
user: null 因为 user 是个对象 用null 可以的 然后 在页面判断 user 是否存在, 如过user不存在 就不用渲染了。其实你要考虑 后端有什么数据给你什么数据不给你,然后根据 if 去判断 就可以了,这样的话 如果 上级不存在,那么下级应该是不给渲染的

不要用赋初始值。redux数据尽量扁平化。但是需要。stat.key =null。每次用数据的时候用lodash判断一下isPlainObject或者isArray。

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