如何更新 Nuxt.js 中的 $auth.user 属性?
How to update $auth.user properties in Nuxt.js?
当我想更新时$auth.user.balance
:
methods:{
test(){
this.$auth.user.balance = 10;
}
}
但是returns错误:
Error: [vuex] do not mutate vuex store state outside mutation handlers.
如何在 Nuxtjs 中更新这些 vuex 属性?
当你使用 Vuex 时,你应该只通过你的突变来改变你的状态,在你的 Vuex 中你应该像这样创建一个突变:
setBalance(state, payload) {
auth.user.balance = payload;
},
并且在您的组件中,您需要将新突变映射到 methods
、
...mapMutations('auth', ['setBalance']),
别忘了从 vuex 导入 mapMutations
import { mapMutations } from 'vuex';
在你的组件中,当你想设置一个新值来平衡你调用
test(){
let newValue = 10;
this.setBalance(newValue);
}
您可以在 Vuex 文档
中了解有关 Vuex 存储 here 中突变的更多信息
Nuxt 提供$auth.setUser()
方法来设置用户。
像这样使用$auth.setUser()
:
const userToUpdate = {...this.$auth.user}
userToUpdate.balance = 10;
this.$auth.setUser(userToUpdate)
存储中的数据更新始终应该是不可变的。
因此在将对象传递给 setUser
之前创建一个新的对象引用以避免反应性问题。
当我想更新时$auth.user.balance
:
methods:{
test(){
this.$auth.user.balance = 10;
}
}
但是returns错误:
Error: [vuex] do not mutate vuex store state outside mutation handlers.
如何在 Nuxtjs 中更新这些 vuex 属性?
当你使用 Vuex 时,你应该只通过你的突变来改变你的状态,在你的 Vuex 中你应该像这样创建一个突变:
setBalance(state, payload) {
auth.user.balance = payload;
},
并且在您的组件中,您需要将新突变映射到 methods
、
...mapMutations('auth', ['setBalance']),
别忘了从 vuex 导入 mapMutations
import { mapMutations } from 'vuex';
在你的组件中,当你想设置一个新值来平衡你调用
test(){
let newValue = 10;
this.setBalance(newValue);
}
您可以在 Vuex 文档
中了解有关 Vuex 存储 here 中突变的更多信息Nuxt 提供$auth.setUser()
方法来设置用户。
像这样使用$auth.setUser()
:
const userToUpdate = {...this.$auth.user}
userToUpdate.balance = 10;
this.$auth.setUser(userToUpdate)
存储中的数据更新始终应该是不可变的。
因此在将对象传递给 setUser
之前创建一个新的对象引用以避免反应性问题。