如何把vue中state的值赋值给data

我在created中派遣的mutation,然后改变我的初始化state

state(初始值):
clipboard.png

mutation(改变state):
clipboard.png
action(调用接口):
clipboard.png
在created生命周期中派遣:
clipboard.png
通过mapState拿到改变后的state:
clipboard.png
这个是我的data:!
clipboard.png
我希望当我的页面加载完成defaultdata的值是state的值?试了好多都不行,大家有什么好办法吗?

回答:

我觉得可以这样

// ...
computed () {
  defaultData () {
    return {
      SDcard: this.$store.state.alarmInput.actionList.SDcard,
      Trlparam: this.$store.state.alarmInput.Trlparam
    }
  }
}
// ...

我不明白为什么要执着于data,实际上data和computed的值最终都会是该vue实例的成员属性,这样只要在computed中返回就可以了
或许非要这样的话,可以在computed中返回,然后watch computed中的属性,然后在watcher中改变this.defaultData?
或许还可以在父组件中传递props到该组件中,当然这也并不是data中的属性.
重点是datapropscomputed,还有vuex中的state,本身在程序中代表的含义就不一样,如果说想实现的功能非得是在data中包裹返回state中的属性,我会觉得这个设计不合理

重新审题之后

看到说是希望data中的默认值与state中的值一致?意思是,不随state的改变而改变吗?
这倒是可以做到

data () {
  var p1 = this.$store.state.xxx.p1
  var p2 = this.$store.state.xxx.p2
  return {
    defaultData: {
      p1: p1,
      p2: p2
    }
  }
}

不知道这样做符合你的预期吗

回答:

通过mapState拿到改变后的state 是在 computed 属性里吗?
那么获取的计算属性名称就是 SDcard 和 Trlparam,没有办法让他们叫 defaultData 的。

如果一定要和 state 中的初始值一样,可以使用 lodash 中的 clone,直接在 created 中 clone this.$state

回答:

vuex的值放在computed之中使用

暂无评论

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注