对行为不了解

时间:2019-11-07 10:25:47

标签: react-native

目前,我正在学习本机响应,但仍然不知道为什么会发生。 我有一个组件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>
}

在有成功案例的情况下如何显示成功文本,而在失败案例中失败的情况下如何显示

谢谢。

1 个答案:

答案 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 });
}