Я хотел бы получить доступ к значению из модуля хранения Vuex
в пределах v-bind
.Доступ к Vuex в v-bind
<input @blur="validate_field"
name="firstName"
placeholder="First Name"
:class="{fail: this.$store.state.formStore.signupForm.errors.firstName}"
/>
Это выдает следующее сообщение об ошибке:
TypeError: Cannot read property 'signupForm' of undefined
Я попытался добавить следующее:
computed: {
...mapState({
signupForm: state => state.formStore.signupForm
})
}
И замена неисправной линии с:
:class="{fail: signupForm.errors.firstName}"
, а также множество других вещей, но безрезультатно. Есть идеи?
EDIT: Вот мой магазин:
const state = {
// data
formStore: {
// data
signupForm: {
// data
errors: {
// NO data
}
}
}
}
Вам нужно будет начать использовать [Vuex's getters] (https://vuex.vuejs.org/en/getters.html). – ceejayoz
signupForm - это объект в вашем магазине? Вам нужно ссылаться на него через «состояние», например: this. $ Store.state.formStore ... Но это может не сработать, в зависимости от того, как был создан этот объект. Он должен быть реактивным, и вы, вероятно, захотите использовать геттер для определенного свойства, которое вы после – wes
@ceejayoz не хотел бы, чтобы геттеры казались излишними для этого сценария? Все, что я хочу сделать, это обновить класс, когда значение изменяется в состоянии – softcode