设置值后更改本机状态

时间:2019-10-23 15:20:21

标签: react-native

我有一个非常简单的组件,可以使用axios设置状态值。但是,状态值正在render方法中更改。

constructor(props) {
    super(props);
    const { navigation } = this.props;
    const approveID = navigation.getParam('approveID', '0');
    this.state = {
      selectedApprove: approveID,
      reason: '',
    };
}

componentDidMount() {
    const { navigation } = this.props;
    const tenantID = navigation.getParam('tenantID', '0');
    this.getReviewApp(tenantID);
}

getReviewApp(tID) {
    axios.get('http://myserver/getData', {
      params: {
        method: 'getApplicantReview',
        tenantID: tID
      }
    }).then((response) => {
      const result = response.data.DATA[0];
      this.setState({
        selectedApprove: result[0],
        reason: result[1]
      });
    }).catch((error) => {
      // handle error
      console.log(error);
    });
}

...

render() {
   console.log(this.state);
...
}

当我运行该应用程序时,控制台显示2次。首先是完美的: 对象{   “ reason”:“ Test”,   “ selectedApprove”:“是”, }

第二个日志具有空值,它弄乱了我的组件: 对象{   “原因”:null,   “ selectedApprove”:null, }

为什么会这样?

谢谢

1 个答案:

答案 0 :(得分:1)

响应对象的外观不能像您认为的那样。