У меня есть простая локализация в моем приложении. Когда я устанавливаю языки вручную в состоянии, это работает, но когда я хочу загрузить переводы из некоторого файла json, у меня возникает проблема со вторым языком и появляется стандартная ошибка «Отсутствует translationId: userId для language: cr», но код остается прежним .. ,
В конструкторе, когда я использую translations1, this.props.addTranslation (this.state.translations1);
это работает, но когда я использую this.props.addTranslation (this.state.translations);
я получаю ошибку
Может ли кто-нибудь мне помочь?
constructor(props){
super(props);
this.state = {
translations1: {
pocetna: ['Početna', 'Почетна'],
listaKorisnika: ['Lista Korisnika', 'Листа Корисника'],
dodajKorisnika: ['Dodaj Korisnika', 'Додај Корисника'],
userId: ['User ID', 'Усер ИД']
},
translations: []
}
this.props.initialize({
languages: [
{name: "Latinica", code: "lt"},
{name: "Cirilica", code: "cr"}
],
options: {
renderToStaticMarkup,
defaultLanguage: 'lt'
}
})
this.props.addTranslation(this.state.translations);
this.onChangeLanguage = this.onChangeLanguage.bind(this);
}
onChangeLanguage(_slag) {
console.log('onChangeLanguage: ', _slag.value)
this.props.setActiveLanguage(_slag.value);
}
componentDidMount() {
this.props.getTranslations();
}
componentWillReceiveProps(nextProps) {
console.log('nextProps: ', nextProps.translations)
this.setState({
translations: nextProps.translations
})
}
render() {
const languageInSelect = [
{ label: 'Latinica', value: 'lt' },
{ label: 'Cirilica', value: 'cr' }
];
return(
<div className="sidebar" style={{'backgroundImage': 'url(assets/img/sidebar-3.jpg)'}}
data-color="purple" data-background-color="white"
data-image="../assets/img/sidebar-1.jpg">
<div className="sidebar-wrapper">
<ul className="nav" >
<li className="nav-item ">
<NavLink to="/pocetna" exact={true} className="nav-link" activeStyle={{ 'backgroundColor': '#9c27b0', 'color':'white', 'fontWeight':'bold'}}>
<MaterialIcon icon="dashboard" />
{/* <i className="material-icons">dashboard</i> */}
<Translate id="pocetna">Početna</Translate>
{/* <p>Početna</p> */}
</NavLink>
</li>
<li className="nav-item ">
<NavLink to="/listaKorisnika" exact={true} className="nav-link" activeStyle={{ 'backgroundColor': '#9c27b0', 'color':'white','fontWeight':'bold'}}>
<i className="material-icons">person</i>
<Translate id="listaKorisnika">Lista Korisnika</Translate>
{/* <p>Lista korisnika</p> */}
</NavLink>
</li>
<li className="nav-item ">
<NavLink to="/dodajKorisnika" className="nav-link" activeStyle={{ 'backgroundColor': '#9c27b0', 'color':'white','fontWeight':'bold' }}>
<i className="material-icons">person_add</i>
<Translate id="dodajKorisnika">Lista Korisnika</Translate>
{/* <p>Dodaj korisnika</p> */}
</NavLink>
</li>
<li className="nav-item ">
<Select
onChange={this.onChangeLanguage}
options={languageInSelect}
defaultValue={{label: 'Latinica', value: 'lt'}}
/>
</li>
</ul>
</div>
</div>
)
}