我正在尝试在我的React应用中实现Alt。 目前我正在检查它,只是按照教程尝试了一些东西。现在我遇到了商店无法识别行动的问题。
这是动作类:
import alt from '../libs/alt';
import WishSource from '../sources/WishSource';
class WishActions {
fetchWishes() {
this.dispatch();
WishSource.fetch()
.then((wishes) => {
this.actions.fetchWishesSuccess(wishes);
})
.catch((err) => {
this.actions.fetchWishesFailed(err);
});
}
fetchWishesSuccess(wishes) {
this.dispatch(wishes);
}
fetchWishesFailed(err) {
this.dispatch(err);
}
}
export default alt.generateActions(WishActions);
我尝试在我的商店中绑定这些操作,如下所示:
import alt from '../libs/alt';
import WishActions from '../actions/WishActions';
class WishStore {
constructor() {
this.wishes = [];
this.errorMessage = null;
this.bindListeners({
handleFetchWishes: WishActions.FETCH_WISHES,
handleFetchWishesSuccess: WishActions.FETCH_WISHES_SUCCESS,
handleFetchWishesFailed: WishActions.FETCH_WISHES_FAILED
});
}
handleFetchWishesSuccess(wishes) {
this.wishes = wishes;
this.errorMessage = null;
}
handleFetchWishes() {
this.wishes = [];
}
handleFetchWishesFailed(err) {
this.errorMessage = err;
}
}
export default alt.createStore(WishStore, 'WishStore');
我一直在给我错误
'在
中传递的动作参考无效
问题出在bindListeners函数中。
如果我尝试使用bindActions,它会说:
'_ WishActions2.default.fetchWishes不是函数'
这是在视图中。我在WishActions.fetchWishes()
componentDidMount()
我无法理解这里出了什么问题。 如果我查看教程和其他示例,这应该可行。
有人可以帮我解决这个错误吗?
答案 0 :(得分:3)
我发现了什么问题,并且会留下这里的帖子以防其他人遇到同样的事情。
问题是我使用了generateActions而不是createActions。 您可以对类使用createActions,对简单函数使用generateActions。
generateActions('create')将创建一个函数create =(x)=> {return x;并派遣它。 你仍然可以在你的类中使用构造函数中的this.generateActions