Я делаю экраны SOMME подключения / надписи.У меня есть кнопка нижней вкладки профиля.Цель состоит в том, чтобы, если пользователь щелкнул по нему, он либо покажет свою страницу профиля, если он подключен (я настраиваю пользователя в моем магазине редуксов), либо покажет экран Landing с кнопкой входа в систему и кнопкой подписки, если он не подключен..
Как я могу переходить на эту целевую страницу каждый раз, когда пользователь нажимает «Профиль» на моей нижней панели вкладок, если хранилище редуксов пусто?
Вот мой код профиля:
// Screens / Profil.js
import React from "react";
import { StyleSheet, View, Text, Button } from "react-native";
import { color } from "../constants/color";
import { connect } from "react-redux";
/*
* Class Profil
* Appears when the users click on the profil button in the bottom tab bar
* Return JSX component
*/
class Profil extends React.Component {
constructor(props) {
super(props);
}
// This is what I have tried so far
componentWillMount() {
if (this.props.currentUser == null) {
this.props.navigation.navigate("Landing");
}
}
/*
* Render the page
* @param null
* @return JSX component
*/
render() {
const { currentUser } = this.props;
console.log(currentUser);
if (currentUser == null) {
return (
<View style={styles.mainContainer}>
<Text>You are not connected</Text>
</View>
);
} else {
return (
<View style={styles.mainContainer}>
<Text>Welcome {currentUser.user.username}</Text>
<Button title="Déconnexion" onPress={this._disconnection} />
</View>
);
}
return null;
}
}
const styles = StyleSheet.create({
mainContainer: {
flex: 1,
backgroundColor: color.whisper
}
});
const mapStateToProps = state => {
return {
currentUser: state.connection.currentUser
};
};
export default connect(mapStateToProps)(Profil);
Поэтому, когда я впервые нажимаю на свой профиль, он хорошо отображается на моей целевой странице:
Но если я снова нажму наПрофиль, он не показывает мою целевую страницу:
Я думаю, это потому, что компонент не перерисовал себя.Как я могу обработать постоянное перенаправление в соответствии с моим состоянием редукса?
ОБНОВЛЕНИЕ: Навигатор моего стека
const ProfilStackNavigator = createStackNavigator({
Profil: {
screen: Profil,
navigationOptions: {
title: "Profil"
}
},
Landing: {
screen: Landing,
headerMode: "none",
navigationOptions: {
header: null
}
},
SignUp: {
screen: SignUp,
navigationOptions: {
title: "Inscription"
}
},
SignIn: {
screen: SignIn,
navigationOptions: {
title: "Connection"
}
}
});