У меня есть компонент Home, который вызывается после входа пользователя. На этом экране есть некоторые данные, а в заголовке у меня есть кнопка со значком, которая отправляет пользователя на экран, где пользователь может видеть данные своего профиля, а также удалить аккаунт. Поэтому, когда нажимается кнопка со значком, я отправляю данные, используя props.navigation
, отправляя пользователя на другой экран / компонент.
profile = () => {
const { navigation } = this.props;
const user = navigation.getParam('user', 'erro');
this.props.navigation.navigate('profileScreen', { user: user });
}
Внутри нового компонента я пытался установить setState внутри метода componentDidMount
, используя эти данные, но он не работал. Я проверил, используя console.log
данные там. Как я мог установитьState в этом случае?
export default class profileScreen extends Component {
static navigationOptions = {
title: "Profile"
};
constructor(props) {
super(props);
this.state = {
user: {}
}
}
componentDidMount() {
const {navigation} = this.props;
const user = navigation.getParam('user', 'Erro2');
this.setState({user: user.user});
console.log(this.state); // Object {"user": Object {},}
console.log("const user");
console.log(user.user); //my actual data is printed
}
render() {
return (
<Text>{this.state.use.name}</Text>
<Text>{this.state.use.age}</Text>
<Text>{this.state.use.email}</Text>
...
...
)
}
}
Результат из console.log (this.state)
Object {
"user": Object {},
}
Результат из console.log (пользователь)
Object {
"createdAt": "2019-04-27T21:21:36.000Z",
"email": "sd@sd",
"type": "Admin",
"updatedAt": "2019-04-27T21:21:36.000Z",
...
...
}