Я использую React 16, React-router-dom 4 и Mobx в моем приложении.
У меня есть этот код для частного маршрута:
export default (props) => {
console.log('props from private',props)//Here i can see that the component doesn't contain the "history" prop.
const Component = props.component;
const match = props.computedMatch
if (isValidated()) {
return (
<div>
<div><Component {...props} match={match} /></div>
</div>
)
} else {
return <Redirect to="/login" />
}
};
Это маршрутизацияsetup:
export const history = createHistory();
const AppRouter = () => (
<Router history={history}>
<Switch>
<PrivateRoute path="/" component={Chat} exact={true} />
<Route path="/login" component={Login} />
</Switch>
</Router>
);
По какой-то причине исторический реквизит просто не существует в приватном маршруте, поэтому я не могу использовать функцию this.props.history.push для программного перенаправления.Однако реквизит переходит на «нормальный» маршрут.
Что не так с моим кодом?