Javascript 在react中直接从子级修改父级道具

Javascript 在react中直接从子级修改父级道具,javascript,reactjs,Javascript,Reactjs,在步骤1的向导中,我是否可以直接修改父道具,以便在安装步骤2后,该道具修改道具可用?或者我该怎么做 向导组件,渲染 <Wizard> {this.state.step1 && <Step1 dataWizard={this.state.dataWizard} /> } {this.state.step2 && <Step2 dataWizard={this.state.dataWizard} />

在步骤1的向导中,我是否可以直接修改父道具,以便在安装步骤2后,该道具修改道具可用?或者我该怎么做

向导组件,渲染

<Wizard>
  {this.state.step1 &&
    <Step1 dataWizard={this.state.dataWizard} />
  }
  {this.state.step2 &&
    <Step2 dataWizard={this.state.dataWizard} />
  }
</Wizard>

道具
,与
状态
一样,是只读的,不应进行变异

您应该使用回调:

<Step1 
  dataWizzard={this.state.dataWizzard} 
  updateData={idCreation => 
    this.setState(prevState => ({ 
      dataWizzard: {
        ...prevState.dataWizzard,
        idCreation,
      },
    }))
  } 
/>

道具
,与
状态
一样,是只读的,不应进行变异

您应该使用回调:

<Step1 
  dataWizzard={this.state.dataWizzard} 
  updateData={idCreation => 
    this.setState(prevState => ({ 
      dataWizzard: {
        ...prevState.dataWizzard,
        idCreation,
      },
    }))
  } 
/>

你应该使用状态,因为

您应该在呈现
向导的组件中使用状态,当
步骤1
完成时,它会更改该状态,然后将在
步骤2
中使用该状态


这被称为。

您应该使用状态,因为

您应该在呈现
向导的组件中使用状态,当
步骤1
完成时,它会更改该状态,然后将在
步骤2
中使用该状态


这被称为。

道具是只读的,您不应该直接覆盖它。您可以在父组件中使用一种方法,通过
this.setState
更新状态。并为您的
Step1
组件传递该方法。
props
是只读的,您不应该直接重写它。您可以在父组件中使用一种方法,通过
this.setState
更新状态。然后将该方法传递给
步骤1
组件。
updateData() {
  this.props.updateData(432876);
}