javascript - 如何使用 redux 制作切换器来翻译网站
问题描述
过去两天我一直在从事一项任务,当用户选择切换按钮时,该任务增加了将整个网站从英语翻译成西班牙语的功能,但是,我真的是 Redux 的新手(在完全不同的项目)。给我代码的人已经配置了减速器,我只需要读取每个组件的状态。
我尝试在其中一个组件上使用此代码:
const store = createStore(reducer);
store.dispatch({
type: 'TOGGLE-LANG'
});
store.subscribe(() => console.log(store.getState()));
但是,它仍然缺少一些东西,在这一点上,我完全迷失了,我很想得到一些指导以知道该怎么做。
我创建了一个包含此任务中涉及的所有代码的 Gist,它评论了预期的行为
[要点链接]:https ://gist.github.com/ManudeQuevedo/12cd63cf7431b5ec9b982a37391b7c56
目前,没有错误,它正在识别减速器(Lang),但我很想知道如何使它在需要翻译的其他组件中可操作。提前致谢!
解决方案
最后,这就是我所做的:
lang.js(减速器)
import { fromJS } from 'immutable';
const initState = fromJS({
value: 'en',
translations: {
en: {
component: {
title: 'Mobile Connectivity',
subtitle: 'Smart Messaging'
}
},
es: {
component: {
title: 'Conectividad Móvil',
subtitle: 'Mensajería Inteligente'
}
},
}
});
export default (state = initState, action) => {
switch (action.type) {
case "CHANGE_LANGUAGE":
return {
...state,
value: action.payload
};
default:
return state;
}
};
我通过在这个组件上解构它来实现它,如下所示:
[Gist][1]
我将它添加到一个要点中,因为它是一个很长的代码,所以它会更具可读性。
推荐阅读
- go - Apache Beam Go SDK - 数据流无法正确自动扩展(并行步骤)
- node.js - MongoDB isConnected 函数返回布尔值
- javascript - 如何为 react-csv 列提供日期格式
- docker - 提高 DistributionNotFound(req, requirers) pkg_resources.DistributionNotFound:
- php - 如何设置 .htaccess 以将子域重定向到目录
- windows - 使用 Mingw 的 gcc 在 Windows 上构建共享库时出现“未定义的引用”问题
- python - 多类分类 Metric 沿着 2d 张量的每一行查找 argmax,并在 keras backed K 中将它们更改为 1 用于 TP、FP、FN 计算
- c++ - QProperties 中的共享指针列表
- visual-studio-2015 - 项目在我构建项目时开始调试
- numpy - 如何使用 cv2.LUT 为图像应用颜色图(数组)