react-redux - 在不使用 redux saga 调用 api 的情况下更改我的状态?
问题描述
我有话要问,我看到文档中总是有对 api 的调用,但是在将变量从法语更改为英语或相反时,我不需要任何 API,那么我该怎么做呢?
这是我迄今为止尝试过的:
<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;
这是根传奇:
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 的操作,任何帮助将不胜感激。
解决方案
推荐阅读
- javascript - 为什么这个脚本不接受任何阿拉伯语输入?
- r - 在R中绘制散点图
- c++ - 为什么我的程序输出不正确的数组总和?
- python - 如何在 python 中将数据保存到 csv 文件和从字典中检索数据?
- ubuntu - Docker-Compose 找不到 docker-compose.yml
- deep-learning - Pytorch 不填充图层
- java - 将字符串转换为 localDateTime 未按预期工作并获取解析异常
- ios - 使用 RxSwift 更新 UIButton 标题并相应地选择操作
- asp.net-mvc - 如何使用 chart.js 根据用户输入创建图表
- node.js - 节点评估脚本没有按预期工作