Tôi cố gắng xây dựng một Ứng dụng Vue thực sự nhỏ với API Rails. Vì vậy, tại thời điểm này tôi làm việc với Vue, Vue-Resource và Vuex. Tôi sẽ lấy tất cả người dùng từ cơ sở dữ liệu, bây giờ tôi cố gắng cập nhật một trong số chúng. Vì vậy, mọi thứ hoạt động tốt (patch User), nhưng sau khi chạy hành động updateUser tôi muốn chạy lại hành động fetchUsers để cập nhật cửa hàng Vuex.Cách gọi hành động bên trong hành động trong Vuex
Nhưng khi fetchUsers chạy bên trong lời hứa updateUser tôi nhận được lỗi sau:
undefined:1 Uncaught (in promise) TypeError: Cannot read property 'dispatch' of undefined
đây là những gì tôi vuex/actions.js đang tìm kiếm:
export const fetchUsers = function ({ dispatch, state }) {
this.$http.get('http://localhost:3000/api/v1/users').then((response) => {
dispatch('SET_USERS', response.data)
}, (response) => {
dispatch('SET_USERS', [])
console.log(response)
})
}
export const updateUser = function ({ dispatch, state }, user) {
this.$http.patch('http://localhost:3000/api/v1/users/' + user.id, {user: user}).then((response) => {
fetchUsers()
}, (response) => {
console.log(response)
})
}
tôi bây giờ mà các fetchUsers hành động bằng cách nào đó mất bối cảnh (?) nhưng tôi không biết làm thế nào để đối phó với điều đó! cảm ơn mọi sự giúp đỡ!
tôi có cùng cấu trúc, im nhận fetchUsers không được định nghĩa. –