Изменение моего состояния без вызова API, используя Redx Saga? - PullRequest
0 голосов
/ 27 марта 2020

У меня есть кое-что спросить, я вижу, что в документации всегда есть вызов API, но мне не нужен API для изменения переменной с французского на английский sh или наоборот, так как Я делаю это ?

Вот что я пробовал до сих пор:

<Button
   content={intl("FRENCH")}
   type="link"
   color="link"
   size="medium"
   entire={false}
   onClick={() =>
     this.props.changeLanguage({ language: "ENGLISH_LANGUAGE" })
   }
   >
</Button>

Мое действие changeLanguage работает просто отлично, я протестировал его с консольным журналом и вот действие:

export const changeLanguage = ({ language }) => {
  console.log(language);
  return {
    type: language
  };
};

А вот моя сага:

import { changeLanguage } from "../../Actions/Language/language";
import { takeEvery, put, call, fork } from "redux-saga/effects";

function* changeCurrentLanguage({ type }) {
  yield put({ type: "ENGLISH_LANGUAGE_CHANGE" });
}

function* watchChangeLanguage() {
  yield takeEvery("ENGLISH_LANGUAGE", changeCurrentLanguage);
}

const languageSaga = [fork(watchChangeLanguage)];

export default languageSaga;

Вот эта root сага:

import { all } from "redux-saga/effects";
import connectionSaga from "./Authentification/connection";
import languageSaga from "./Language/language";

export default function* rootSaga() {
  yield all([...connectionSaga, ...languageSaga]);
}

Мой простой редуктор:

const initialState = {
  language: "en"
};

export default function languageReducer(state = initialState, action) {
  switch (action.type) {
    case "ENGLISH_LANGUAGE_CHANGE":
      console.log("ENGLISH");
      return { ...state, language: "en" };
    case "FRENCH_LANGUAGE":
      return { ...state, language: "fr" };
    default:
      return state;
  }
}

Я есть используя метод put для отправки действия, но действие с ENGLISH_LANGUAGE_CHANGE не запускается, любая помощь будет принята.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...