Alt + React - недействительная ссылка на действие при следовании инструкции alt

Я пытаюсь реализовать Alt в моем приложении React. В настоящее время я проверяю это и просто попробовал кое-что после учебника. Теперь я застрял с проблемой, что магазин не распознает действие.

Это класс действий:

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 ответ

Я нашел, что пошло не так, и оставлю пост здесь, если кто-то еще столкнется с тем же.

Проблема была в том, что я использовал generateActions вместо createActions. Вы используете createActions для класса и generateActions для простых функций.

generateActions ('create') сделает функцию create = (x) => { return x; } и отправьте его. Вы все еще можете использовать это в своем классе с this.generateActions в конструкторе

Другие вопросы по тегам