首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在React I18next中,第一个初始化显示了json键。

在React I18next中,第一个初始化显示了json键。
EN

Stack Overflow用户
提问于 2017-02-08 05:46:33
回答 2查看 2.1K关注 0票数 1

为了国际化,我使用了i18next。

我有使用i18next jQuery和ReactJS的经验。

现在我使用了i18next for ReactJS

但我有个问题。

在jQuery中,可以将该值设置为默认值。

例如

代码语言:javascript
运行
复制
<!-- Standard -->
<li data-i18n="nav.home"></li>

<!-- below code also available -->
<li data-i18n="nav.home">MY HOME</li>

上面的代码将"HOME“作为默认值应用。

但是React i18n不能设置默认值。

因此,当第一次初始化网页时,显示Json键分裂秒。

像这样

代码语言:javascript
运行
复制
<!-- set a -->
const {t} = this.props;
<li>{ t(nav.home) }</li> 

我不想看到json键,我只想直接看到加载的值("MY“)。

你可以把这个问题看作是我上传的Youtube视频

或者,我选择使用i18next事件侦听器的解决方案。

代码语言:javascript
运行
复制
// In constructor
this.state = { i18nLoaded : false }

// In componentWillMount
i18next.on('initialized', () => {
    this.setState({ i18nLoaded : true })
});

// In Render
const {t} = this.props;
return (
    <div>
        {
            this.state.i18nLoaded ? 
                <li>{ t(nav.home) }</li> 
            : ""
        }
    </div>
)

我选择使用事件侦听器在i18next初始化后呈现组件的方法。但看起来不完整。

有人知道这个问题的解决办法吗?

EN

回答 2

Stack Overflow用户

发布于 2017-02-09 06:13:19

若要在react i18n中设置默认值,请使用选项。i18next API

代码语言:javascript
运行
复制
const {t} = this.props;
<li>{ t(nav.home, {defaultValue : "MY HOME"}) }</li> 
票数 2
EN

Stack Overflow用户

发布于 2017-05-24 20:21:20

解决方案将使用react i18next:https://github.com/i18next/react-i18next

在那里,您可以在翻译临时设置等待标志。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42105600

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档