javascript - 在状态内设置 react 18next 值
问题描述
我使用 reactstrap 做了一个下拉并且工作正常,但现在我试图将 react-18next 的值设置为我的状态,作为 dropDownValue 的值。i18n 在我的渲染中工作正常,但我无法在我的状态中访问它的值.. 有什么想法吗?这是我的代码。先感谢您!
dropdownd.jsx:
import React, { PureComponent } from 'react';
import {
DropdownItem,
DropdownToggle,
DropdownMenu,
UncontrolledDropdown,
} from 'reactstrap';
import { withTranslation } from 'react-i18next';
import PropTypes from 'prop-types';
class TopbarNavDashboards extends PureComponent {
state = {
dropDownValue: 'Home', // this must be {t('app.home')}
dropdownOpen: false,
};
static propTypes = {
t: PropTypes.func.isRequired,
};
toggle = () => {
const { dropdownOpen } = this.state;
this.setState({
dropdownOpen: !dropdownOpen,
});
};
changeValue = (e) => {
this.setState({ dropDownValue: e.currentTarget.textContent });
};
render() {
const { t } = this.props;
const { dropdownOpen, dropDownValue } = this.state;
return (
<UncontrolledDropdown
isOpen={dropdownOpen}
toggle={this.toggle}
className="topbar__nav-dropdown"
>
<DropdownToggle className="topbar__nav-dropdown-toggle">
{dropDownValue} <MenuSwapIcon />
</DropdownToggle>
<DropdownMenu className="topbar__nav-dropdown-menu dropdown__menu">
<DropdownItem onClick={this.changeValue}>
<TopbarNavLink route="/home" title={t('app.home')}/>
</DropdownItem>
<DropdownItem onClick={this.changeValue}>
<TopbarNavLink route="/github" title={t('app.github')} />
</DropdownItem>
<DropdownItem onClick={this.changeValue}>
<TopbarNavLink route="/proyects" title={t('app.proyects')} />
</DropdownItem>
</UncontrolledDropdown>
);
}
}
export default withTranslation('common')(TopbarNavDashboards);
解决方案
我可能是错的,但我认为您可以参考 state 对象中的道具:
state = {
dropDownValue: this.props.t('app.home')
dropdownOpen: false,
};
推荐阅读
- ios - GPUImage ChromaKeyBlendFilter
- c++ - 如何防止移动切片?
- python - 没有名为“rpytools”的模块?
- angular - 是否可以在 Angular7 中动态创建组件?
- go - 如何在 GO 中创建具有扩展名和属性值的证书签名请求?
- jquery - 仅当 div 包含“someText”时,Jquery 才提交表单
- windows - 错误由于错误而停止(org.apache.kafka.connect.cli.ConnectStandalone)java.lang.NoClassDefFoundError:io/debezium/util/IoUtil
- java - 如何使用 Java 获取 CSRF Token 并将其传递到 Selenium WebDriver 以自动化网站登录功能,防止自动化脚本
- rpa - 当机器人通过 Studio 运行时,Firefox 启动,但通过 Orchestrator IE 启动
- python - 在 Pandas 数据框中检索字符串的特定部分