Есть три юзера.
users: [
{id: 1, name: "Andrey", registered: false},
{id: 2, name: "Ivan", registered: false},
{id: 3, name: "Max", registered: false}
]
Есть метод в компоненте
methods: {
register(user) {
console.log('in method user id = ', user.id)
this.$store.dispatch('register', {
payload: {
type: 'register',
user
}
})
}
}
Соответственно есть Action:
register({commit}, payload) {
commit('register', payload)
}
И к нему мутация:
register(state, payload) {
const user = state.users.find(user => {
return user.id === payload.user.id
})
user.registered = true;
const registration = {
userId: payload.user.id,
name: user.name
}
state.registrations.push(registration)
}
В чем проблема:
В мутации уже на первой строке
const user = state.users.find(user => {
return user.id === payload.user.id
})
выдает ошибку, что payload.user - тип undefined (Cannot read property 'id' of undefined). Соответственно, он еще даже в Action'е undefined типа. Почему так происходит? Почему я могу напрямую передать объект
user, а передать объект
user в объекте
payload не получается?
Что-то я делаю не так, жду ваших замечаний...