reactjs - React Redux Localize 只返回第一个字母
问题描述
我正在尝试使用 react redux,但我遇到了一个问题。以下代码仅呈现第一个字母“T”,而不是全部“Test”。Redux 调试器显示所有“测试”。怎么会这样?
索引.js:
import React from 'react';
import ReactDOM from 'react-dom';
import App from './app';
import { localizeReducer } from 'react-localize-redux';
import { combineReducers, createStore } from 'redux';
import { LocalizeProvider } from "react-localize-redux";
const store = createStore(
combineReducers({localize: localizeReducer})
);
ReactDOM.render(
<LocalizeProvider store={store}>
<App />
</LocalizeProvider>,
document.getElementById('root'));
应用程序.js:
import React, { Component } from 'react';
import { Translate, withLocalize } from "react-localize-redux";
import { renderToStaticMarkup } from 'react-dom/server';
class App extends Component {
constructor(props) {
super(props);
this.props.initialize({
languages: [
{ name: "English", code: "en" }
],
options: { renderToStaticMarkup }
});
let english = {
abc: "Test"
}
this.props.addTranslation(english);
}
render() {
return <Translate id="abc" />;
}
}
export default withLocalize(App);
解决方案
如果您只想为一种语言添加翻译,您可以使用addTranslationForLanguage。这个使用单一语言格式:
let english = {
abc: "Test"
}
this.props.addTranslationForLanguage(english, 'en');
使用多种语言时应使用addTranslation 。此 api 需要all-language-format的数据,因此您可以为多种语言执行类似此数组的操作:
let translations = {
abc: ["Test"]
}
this.props.addTranslationForLanguage(translations);
推荐阅读
- c - pthread_join 的返回值不正确
- github - 更新另一个 Action 的工作流文件的 GitHub Action
- selenium - webdriverIO中如何点击左右箭头按钮来移动页面?
- pandas - 将时变变量乘以 Pandas 系列(Gurobi optim.model)
- .net - 在哪里可以找到 TeamsFx .NET SDK 的 Nuget 包
- github-actions - Github 操作调用 Makefile 假并将图像推送到 dockerhub
- php - 如何允许搜索结果显示在 WP Bakery Grid Builder 中
- c# - 如何先运行 Startup.ConfigureService 再运行 HostingStartup 的
- excel - 无法找到适当的公式将一列中的单词部分匹配到另一列
- c - shell 实现中管道命令执行之间的竞争条件