нужно выполнить такую цепочку event > action > dispatch store >
?? > event > rerender
Там где знаки вопроса, не понимаю как реализовать
код постараюсь сделать максимально чистым
<form className="autorization_form">
class Languages extends React.Component{
render() {
return (
<input
defaultValue = "ua"
onClick = {this.props.languageUpdate}
/>
)
}
};
var EAction = {
LANGUAGE_UPDATE : "LANGUAGE_UPDATE"
}
function reducer(state = { language : ""}, action) {
case EAction.LANGUAGE_UPDATE:
return {
...state,
language: action.language,
};
default:
return state;
}
}
function languageUpdate(event){
return {
type : EAction.LANGUAGE_UPDATE,
language : event.target.value,
}
}
var LanguagesController = connect(
state =>({
language : state.language
}),
dispatch => bindActionCreators({
languageUpdate,
}, dispatch)
)(Languages, FormAuthView)
var store = createStore(reducer, applyMiddleware(thunk));
мне нужно чтобы отработала эта функция setLanguage(),
не могу понять как заставить ее отработать по обновлению state.language</b>
function setLanguage(state){
state = store.getState();
var lang = state.language;
language_variant.setLanguage(lang);
alert('languge was setup');
};
и произошел ререндер этого компонента ну или вообще любого (но это уже следующий вопрос))))
export default class Form extends React.Component{
render(){
return(
<div>
<div id="form_container">
<Provider store = {store}>
<FormAuthController/>
</Provider>
</div>
<div className="languages_icon">
<Provider store = {store}>
<LanguagesController />
</Provider>
</div>
</div>
)
}
}