目前,我正在学习本机响应,但仍然不知道为什么会发生。 我有一个组件A和一个组件B。
在组件A中,当句柄成功时,我将传递isSucceeded:失败情况下为true和false。
但是我不知道为什么在成功的情况下,它会导航到B屏幕并始终显示Fail
文本,然后显示Success
文本1秒钟
component A:
login() {
dataService.getService().then((response) => {
navigateService.navigate('B', {isSucceeded: true})
}).catch(error => {
navigateService.navigate('B', {isSucceeded: false})
});
}
在组件B中:
componentDidMount() {
this.state.isSucceeded = navigation.getParam('isSucceeded')
}
render() {
this.state.isSucceeded ? <View> <Text>Success</Text></View> :
<View> <Text>Fail</Text></View>
}
在有成功案例的情况下如何显示成功文本,而在失败案例中失败的情况下如何显示
谢谢。
答案 0 :(得分:0)
您应该在constructor
constructor(props) {
super(props);
this.state = {
isSucceeded: props.navigation.getParam('isSucceeded'),
};
}
如果您坚持在componentDidMount
中进行操作,则必须使用setState()
:
componentDidMount() {
const isSucceeded = this.props.navigation.getParam('isSucceeded');
this.setState({ isSucceeded });
}