Хранить всё в одном глобальном состоянии это одна из хороших практик при использовании Redux в разработке
для поддержки и расширения удобно инкапсулировать состояние компонента внутри него.
ничто не мешает хранить состояние в общем сторе
ценой за инкапсуляцию мы превращаем компонент в чёрный ящик
class App extends React.Component {
constructor() {
super();
this.state = {
prop: 1,
}
}
stateChange = () => {
this.setState({
prop: this.state.prop + 1,
});
}
render = () => {
return <div>
<p>{this.state.prop}</p>
<input type="button" value="Обновить" onClick={() => {this.stateChange()}}/>
</div>;
}
}
ReactDOM.render(<App/>, document.getElementById('body'));
.todo-list-item.done {
text-decoration: line-through;
}
state = {
done: false,
};
onLabelClick = () => {
this.setState({
done: true
});
};
render() {
return (
<div className={'todo-list-item' + (this.state.done ? ' done' : '')} onClick={this.onLabelClick}>text</div>
);
}
const SuperLink = (props) => <NavLink activeClass="active" activeStyle={{fontWeight: "bold"}} to={props.to}>{props.text}</NavLink>
....
<SuperLink to="/stats" text="Stats"/>
Как я понимаю: создается POST AJAX-запрос к указанному адресу.Нет, происходит субмит формы, никакого аякс запроса по умолчанию не создается, обычный запрос, пост или гет зависит от метода указанного в форме.
Но после получения ответа от сервера (в моем случае status=200) браузер переходит на адрес запроса в показывает ответ запроса в html.Так и должно быть, браузер отсылает форму и переходит по урл отсылки чтобы получить ответ.
Как это обработать, как сделать так, чтобы браузер никуда не переходил и не показывал пользователю ответ?Гуглите "отправка формы ajax" - миллион статей.