Alt + React - 遵循alt教程时无效的动作参考

时间:2016-01-21 14:59:20

标签: reactjs alt.js

我正在尝试在我的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()

我无法理解这里出了什么问题。 如果我查看教程和其他示例,这应该可行。

有人可以帮我解决这个错误吗?

1 个答案:

答案 0 :(得分:3)

我发现了什么问题,并且会留下这里的帖子以防其他人遇到同样的事情。

问题是我使用了generateActions而不是createActions。 您可以对类使用createActions,对简单函数使用generateActions。

generateActions('create')将创建一个函数create =(x)=> {return x;并派遣它。 你仍然可以在你的类中使用构造函数中的this.generateActions