Итак, есть два способа, которые я могу придумать. Можно было бы, чтобы приложение всегда пыталось загрузить страницу входа в начало приложения. Затем в sign-in
компонента, сделать что-то вроде:.
componentDidMount: function() {
if (currentUserStore.getUser()) {
return this.props.navigator.push({
title: 'Home',
component: MainApp
});
}
}
Так что это делает это проверить, если у вас есть пользователь, вошедший в случае, если вы это сделаете, то он переходит к сцене MainApp, в противном случае он ничего не делает и обычно выполняет sign-in
.
Другой способ сделать это - использовать состояние. Таким образом, вы можете сделать Home
компонент, как:
var Home = React.createClass({
getInitialState: function() {
return {
loggedIn: false
};
},
componentDidMount: function() {
if (currentUserStore.getUser()) {
return this.setState({
loggedIn: true
});
}
},
render: function() {
if this.state.loggedIn
<MainApp ... />
else
<SignIn ... />
}
});
Тогда в вашей части зарегистрировались компонента, убедитесь, что setState
к истине, когда пользователь входит в успешно.
Я спрашивал специально для приложения React Native. У меня есть все логики, настроенные для сохранения текущего идентификатора пользователя при входе в систему и проверки подписанного или нет. Мой вопрос в том, есть ли способ перенаправить основной компонент приложения на страницу входа после нажатия кнопки успешного входа в систему? Принудительное обновление сделает, но не уверен, как его реализовать. Кто-нибудь знает как? Есть ли примеры приложений, созданных с помощью React Native, подобных этому? –
вам необходимо использовать навигатор или навигатор и использовать push для следующего маршрута или заменить существующий маршрут (с той же страницей), чтобы получить эффект перезагрузки http://facebook.github.io/react-native/docs/navigator .html # content – boredgames
Возможно ли это сделать location.reload() в веб-браузере без использования навигатора или navigatorIOS? –