在我的index.js文件中我有这个:
const store = createStore(
combineReducers({
i18n: i18nReducer
}),
applyMiddleware(thunk)
);
syncTranslationWithStore(store)
store.dispatch(loadTranslations(translationsObject));
store.dispatch(setLocale('de'));
使用此代码将默认语言设置为greman。现在我想在ReactDOM.render中制作一个Button,在那里我可以改变语言,最好用stahet(de / en)
我所做的是:
function changeLanguage() {
function handleClick(e) {
e.preventDefault();
store.dispatch(setLocale('de'));
}
}
和ReactDOM中的
<Router history={hashHistory}>
<div>
<div className="sidebararound">
<div className="sidebar">
<ul>
<li><a className="fa fa-language fa-2x" onClick={this.changeLanguage.handleClick.bind()} aria-hidden="true"></a></li>
但那不起作用。我有一个白页。我的错误在哪里?
由于
答案 0 :(得分:2)
在构造函数中绑定事件始终是一个好习惯。
constructor(props) {
super(props);
this.handleClick = this.handleClick.bind(this)
....
}
handleClick(e){
e.preventDefault();
store.dispatch(setLocale('de'));
}
并在渲染方法中:
<Router history={hashHistory}>
<div>
<div className="sidebararound">
<div className="sidebar">
<ul>
<li><a className="fa fa-language fa-2x" onClick={this.handleClick} aria-hidden="true"></a></li>