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

state(初始值):

mutation(改变state):

action(调用接口):

在created生命周期中派遣:

通过mapState拿到改变后的state:

这个是我的data:!

我希望当我的页面加载完成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中的属性

.

重点是

data

props

computed

,还有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

}

}

}

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

vuex的值放在computed之中使用

通过mapState拿到改变后的state 是在 computed 属性里吗?

那么获取的计算属性名称就是 SDcard 和 Trlparam,没有办法让他们叫 defaultData 的。

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

Logo

前往低代码交流专区

更多推荐