реакции-маршрутизатор: разделить состояние между маршрутами без Redux
Я хотел бы иметь общее состояние (список клиентов, извлекаемых удаленно) между двумя родственными маршрутами:Timesheets
а такжеClients
.
Я хочу попробовать, насколько далеко я могу пойти с «чистым» React (без архитектуры Flux).
Этот пример работает, но у меня есть ошибка:browser.js:49 Warning: [react-router] You cannot change <Router routes>; it will be ignored
Таким образом, это не похоже на асинхронный реквизит.
constructor(props) {
super(props);
this.state = {
clients : []
}
}
componentDidMount() {
fetch("clients.json")
.then(response => response.json())
.then(clients => this.setState({ clients }));
}
render() {
return (
<Router history={browserHistory}>
<Route path="/" component={Header} >
<Route path="timesheet" component={() => (<Timesheets {...this.state} />) }/>
<Route path="clients" component={() => (<Clients {...this.state} />) }/>
</Route>
</Router>
);
}
Можно ли отправлять асинхронные реквизиты на каждый маршрут?
Или возможно установить все состояние в родительском маршруте (Header
компонент), а затем получить доступ к этому состоянию из каждого дочернего маршрута (Timesheets
а такжеClients
компоненты)?