gpt4 book ai didi

javascript - 在 v-bind 中访问 Vuex

转载 作者:搜寻专家 更新时间:2023-10-30 22:51:57 25 4
gpt4 key购买 nike

我想从 v-bind 中的 Vuex 存储模块访问一个值。

<input @blur="validate_field" 
name="firstName"
placeholder="First Name"
:class="{fail: this.$store.state.formStore.signupForm.errors.firstName}"
/>

这会引发以下错误:

类型错误:无法读取未定义的属性“signupForm”

我尝试添加以下内容:

computed: {
...mapState({
signupForm: state => state.formStore.signupForm
})
}

并将失败的行替换为:

:class="{fail: signupForm.errors.firstName}"

还有一大堆其他的东西,都无济于事。有什么想法吗?

编辑:这是我的商店:

const state = {
// data
formStore: {
// data
signupForm: {
// data
errors: {
// NO data
}
}
}
}

最佳答案

感谢@wes 在评论中指出有关 react 性的文档。

Here文档说:

Due to the limitations of modern JavaScript (and the abandonment ofObject.observe), Vue cannot detect property addition or deletion.

我正在动态填充错误对象。原来 Vue.js 没有检测到这一点,因此无法对此使用react。

加上 firstName,它就可以工作了:

const state = {
// data
formStore: {
// data
signupForm: {
// data
errors: {
firstName: '' <--------
}
}
}
}

教训是:您希望 Vue 响应的所有属性都必须显式声明。

关于javascript - 在 v-bind 中访问 Vuex,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41797514/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com