VUE store 数据串变量,怎么解?

  1. 问题: 两个变量,同一个接口获取的数据,但是,使用的时候发现数据串在一起了。如下图:
  2. 图片.png
  3. SET_FLOW_CLIENT_DATA中不想有SET_CLIENT_DATA的_expanded值。可是,一当SET_CLIENT_DATA在页面的值一被改变,SET_FLOW_CLIENT_DATA也跟着变了。如何才能真正区别开来他们两个变量?
  4. ps: 不想再重新调个接口赋值。
阅读 1.8k
2 个回答

不知道你 store 里是怎么存的,看起来是共用的内存中同一个对象。

如果对象里属性都是基本类型,可以用 Object.assign / Array.from 浅拷贝后再 commit;如果还有其他类型,那就得动手撸一个深拷贝了。

就是引用类型的问题,不想有SET_CLIENT_DATA的_expanded值是不现实的,没必要拆数据结构,就深拷贝一份,网上找个深拷贝的方法,复制进来,或者使用lodash插件:

import _ from lodash

...
commit('SET_FLOW_CLIENT_DATA',_.cloneDeep(data))
...

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