从子级调用父函数会被调用,但不会更改状态

时间:2019-08-04 09:11:07

标签: react-native

我正在开发一个React Native应用程序,其中我正在从子组件中调用父函数,并且该子函数被调用,但它不会改变状态。基本上,我是从子级中打开一个模态,并希望通过更改模态上的某些内容并关闭模态来更改父组件的状态。

这是父母:

constructor(props) {
super(props);
this._toggleModal = this._toggleModal.bind(this)
this.state = {
  isActive: false}}                             

  _toggleModal = async() => {
    this.setState({ isModalVisible: !this.state.isModalVisible })
  }

  doSomthing(x) {
    console.log(x)
    this._toggleModal;
  }

   render() {
    return (
     <RateModal toggleCall1={this.doSomthing}/>
     )}

这是孩子:

  ratingCompleted = async(rating)=> {
    console.log("Rating is: " + rating)
    await this.props.toggleCall1(false)
  }

在给定等级的情况下,我从孩子那里获得了false个道具,但它并没有改变父母的状态。该如何解决?

2 个答案:

答案 0 :(得分:1)

尝试

doSomthing = (x) => {
  console.log(x)
  this._toggleModal();
}

您需要绑定此上下文或将功能更改为箭头功能

答案 1 :(得分:0)

您需要调用该函数

this._toggleModal()