最近遇到一个困惑如下:
假设通过请求获取到一份原始商品列表,我将它存在store中
state = { products:[...] }
在某个组件中,用户可以隐藏一些自己不关心的商品(ps:不是删除,类似于要添加一个show:false属性)。我自己想了几种方法:
一、直接给products中每一项增加一个show属性。
二、在store中再创建一个products的备份productsCopy
,再增加show属性。
三、把products存一份到这个组件的私有state中。
问题是:
1、方法一中,当增加的字段越来越多后,请求products接口后需要做的初始化工作会很多。
2、对于其他组件不关心的状态,我感觉放redux store中不是很好的选择,而且需要写action、reducer、constant、写各种import等,代码量很多。
3、方法三需要在componentWillReceiveProps中监听products的变化,再同步到私有state中。感觉也有点麻烦,而且不容易区分是props.products变化还是其他props变化。
想问下大家平时是怎么处理的?有没有更好的解决方法?