如何在计算的 vuex 中设置状态?

Posted

技术标签:

【中文标题】如何在计算的 vuex 中设置状态?【英文标题】:how to set state in computed vuex? 【发布时间】:2018-06-16 03:33:43 【问题描述】:

也许我没有运气找到这个,但我无法弄清楚: 我有这个字段:

<md-input v-if="edit===false" disabled v-model="userdata.username"></md-input>

我正在使用 vuex getter 绑定用户数据,如下所示:

...mapGetters(
    userdata: "getUserData"
  )

没有问题,但是当我在字段中输入时,我收到错误,因为不建议在突变之外改变状态,那么,当我在字段中输入时如何使用突变更新状态?

我有这个突变来更新用户数据:

[types.UPDATEUSERDATA] (state, user) 
  state.currentUser = user;

这是 getData 突变:

[types.GETUSERDATA] (state) 
  return state.currentUser;

提前致谢。

【问题讨论】:

【参考方案1】:

对不起,我会把它留在这里以防万一,答案在文档中here

只需将 v-model 更改为 :input 并在更改后放一个 avent 进行更新,如下所示:

<input :value="message" @input="updateMessage">

所以 updateMessage 被触发,我在哪里改变了这样的状态:

updateMessage (e) 
  this.$store.commit('updateMessage', e.target.value)

【讨论】:

以上是关于如何在计算的 vuex 中设置状态?的主要内容,如果未能解决你的问题,请参考以下文章

使用 Vuex 4 在 Vue 3 中设置状态数据不起作用

如何在 Vuex 商店的 Vue.js 组件中设置动态样式

如何使用 localStorage 修复 Vuex 中的 JSON 解析错误

如何在子组件中设置状态?

如何在反应中设置来自axios的响应状态

如何在嵌套对象中设置状态