- 问题: 两个变量,同一个接口获取的数据,但是,使用的时候发现数据串在一起了。如下图:
- SET_FLOW_CLIENT_DATA中不想有SET_CLIENT_DATA的_expanded值。可是,一当SET_CLIENT_DATA在页面的值一被改变,SET_FLOW_CLIENT_DATA也跟着变了。如何才能真正区别开来他们两个变量?
- ps: 不想再重新调个接口赋值。
就是引用类型的问题,不想有SET_CLIENT_DATA的_expanded值是不现实的,没必要拆数据结构,就深拷贝一份,网上找个深拷贝的方法,复制进来,或者使用lodash插件:
import _ from lodash
...
commit('SET_FLOW_CLIENT_DATA',_.cloneDeep(data))
...
10 回答11.7k 阅读
2 回答3.2k 阅读✓ 已解决
4 回答4.6k 阅读✓ 已解决
4 回答2.1k 阅读✓ 已解决
4 回答2.2k 阅读✓ 已解决
3 回答1.2k 阅读✓ 已解决
3 回答5.1k 阅读
不知道你 store 里是怎么存的,看起来是共用的内存中同一个对象。
如果对象里属性都是基本类型,可以用
Object.assign
/Array.from
浅拷贝后再 commit;如果还有其他类型,那就得动手撸一个深拷贝了。