Я пытаюсь маршрутизировать программно с помощью this.props.history.push(..)
, но он не работает.
Здесь маршрутизатор:
import {
BrowserRouter as Router,
Route
} from 'react-router-dom';
<Router>
<Route path="/customers/" exact component={CustomersList} />
<Route path="/customers/:id" exact component="{Customer} />
</Router>
В CustomerList отображается список клиентов. Нажатие на клиента (li) должно сделать маршрут приложения к клиенту:
import { withRouter } from 'react-router'
class Customers extends Component {
static propTypes = {
history: PropTypes.object.isRequired
}
handleCustomerClick(customer) {
this.props.history.push(`/customers/${customer.id}`);
}
render() {
return(
<ul>
{ this.props.customers.map((c) =>
<li onClick={() => this.handleCustomerClick(c)} key={c.id}>
{c.name}
</li>
</ul>
)
}
}
//connect to redux to get customers
CustomersList = withRouter(CustomersList);
export default CustomersList;
Код является частичным, но в полной мере иллюстрирует ситуацию. Случается, что адресная строка браузера изменяется в соответствии с history.push(..), но представление не обновляется, компонент Customer не отображается, а CustomerList все еще существует. Любые идеи?