- 问题: 两个变量,同一个接口获取的数据,但是,使用的时候发现数据串在一起了。如下图:
- 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.1k 阅读
6 回答3k 阅读
5 回答4.8k 阅读✓ 已解决
4 回答3.1k 阅读✓ 已解决
2 回答2.7k 阅读✓ 已解决
2 回答4.7k 阅读✓ 已解决
4 回答4.3k 阅读✓ 已解决
不知道你 store 里是怎么存的,看起来是共用的内存中同一个对象。
如果对象里属性都是基本类型,可以用
Object.assign
/Array.from
浅拷贝后再 commit;如果还有其他类型,那就得动手撸一个深拷贝了。