2016-08-27 35 views
5

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 đỡ!

Trả lời

9

đây là làm thế nào tôi đã nhận nó để làm việc :)

import Vue from 'vue' 

export const fetchUsers = ({ dispatch, state }) => { 
    Vue.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 = ({ dispatch, state }, user) => { 
    Vue.http.patch('http://localhost:3000/api/v1/users/' + user.id, {user: user}).then((response) => { 
    fetchUsers({dispatch}) 
    }, (response) => { 
    dispatch('SET_USERS', []) 
    console.log(response) 
    }) 
} 
+0

tôi có cùng cấu trúc, im nhận fetchUsers không được định nghĩa. –

Các vấn đề liên quan