Reactjs 反应本机设置状态不一致

Reactjs 反应本机设置状态不一致,reactjs,react-native,Reactjs,React Native,在这里,我的状态在使用setState后不会更新。log在大多数情况下显示默认值。为什么setState不一致 export default class Row extends Component { constructor(props) { super(props); // icons to listview (arrow icon) this.icons = { up: require("../../assets/ic_play_circle_dow

在这里,我的状态在使用setState后不会更新。log在大多数情况下显示默认值。为什么
setState
不一致

export default class Row extends Component {
  constructor(props) {
    super(props);

    // icons to listview (arrow icon)
    this.icons = {
      up: require("../../assets/ic_play_circle_down.png"),
      down: require("../../assets/ic_play_circle_up.png")
    };

    this.state = {
      title: props.title,
      // getting screen size (width and height)
      let: ({ width, height } = Dimensions.get("window")),

      // collapsed check the listview expanded or not if it is true: list view not expanded
      collapsed: true,

      isApproved: false,
      comment: "dummy comment"
    };
  }
  acceptApproval = () => {
    this.setState({ isApproved: true });
    console.log("Approved TICK " + this.state.isApproved);
    this.verifyApprovals();
  };

  regectApproval = () => {
    this.setState({ isApproved: false });
    console.log("Approved" + this.state.isApproved);
    this.verifyApprovals();
  };

正如您所知,
setState
是异步的,您应该调用第二个函数作为对setState的回调

this.setState({ isApproved: true }, function(){
   this._setApproval(true)
  });

  };
_setApproval(){
console.log("Approved TICK " + this.state.isApproved);
    this.verifyApprovals();
}

  regectApproval = () => {
    this.setState({ isApproved: false } , function() {
    this._setRejection();
});

  };

_setRejection() {
console.log("Approved" + this.state.isApproved);
    this.verifyApprovals();
}

正如您所知,
setState
是异步的,您应该调用第二个函数作为对setState的回调

this.setState({ isApproved: true }, function(){
   this._setApproval(true)
  });

  };
_setApproval(){
console.log("Approved TICK " + this.state.isApproved);
    this.verifyApprovals();
}

  regectApproval = () => {
    this.setState({ isApproved: false } , function() {
    this._setRejection();
});

  };

_setRejection() {
console.log("Approved" + this.state.isApproved);
    this.verifyApprovals();
}

因为setState是异步的。那么我该如何解决呢?在这里你可以了解
setState
:因为setState是异步的。那么我该如何解决呢?在这里你可以了解
setState
:我解决了我的问题。我不知道“setState->asynchronous”好的。你能把正在这里工作的代码放在@hrcjaceptApproval=()=>{this.setState({isApproved:true,collapsed:!this.state.collapsed},function(){this.verifyApprovals();});};我解决了我的问题。我不知道“setState->asynchronous”好的..你能把在这里工作的代码@hrcjaceptApproval=()=>{this.setState({isApproved:true,collapsed:!this.state.collapsed},function(){this.verifyApprovals();});};