У меня есть основной компонент под названием Body
, который выглядит так
class Body extends React.Component {
state = {};
_redirect = data => {
this.setState(
{
user: data
},
() => this.props.history.push("/user_details")
);
};
render() {
return (
<Switch>
<Route
path="/users"
render={() => <UserList onRedirect={this._redirect} />}
/>
<Route
path="/user_details"
render={() => <UserDetails user={this.state.user} />}
/>
</Switch>
);
}
}
export default withRouter(Body);
По сути, есть страница, которая загружается, когда пользователь посещает /users
со списком пользователей, на этой странице есть кнопка, при нажатии этой кнопки вызывается _redirect
, который передается как обратный вызов, как показано выше.
В функции перенаправления данные сохраняются в состояние и передаются компоненту UserDetails
, а URL-адрес меняется на /user_details
, и все работает отлично с первого раза.
Теперь, после этого, когда я пытаюсь перезагрузить страницу /user_details
, страница почему-то не получает user props
. Почему реквизит не передается этому компоненту при обновлении страницы??
this.state
станет равно{}
- person evgeni fotia   schedule 21.10.2018body
в качестве реквизита для компонентаUserDetails
, мой вопрос в том, почему реквизиты вUserDetails
являются нулевыми при перезагрузке страницы. - person Jude Fernandes   schedule 21.10.2018{}
вот что будет передано. вы можете проверить это вUserDetails
, он вернетundefined
, потому что внутри состояния нетuser
- person evgeni fotia   schedule 21.10.2018