我如何在反应中卸载组件

时间:2018-05-21 13:27:32

标签: reactjs

我有一个具有不同渲染的父组件,具体取决于我们的步骤:

render(){

  ..some code to determine step ..

  return(
    {step == 1 && <Step1/>}
    {step == 2 && <Step2/>}
    {step == 3 && <Step3/>}
  )    
}

...

我可以通过这一步,有时可以回去。当我从步骤3返回到2时,不卸载组件步骤3。我希望它是因为我有一些在init上运行的功能,它依赖于步骤2中的配置,所以如果用户在步骤2中更改配置,实际上它不会改变我在步骤3中看到的(它应该)。

我不知道如何卸载我的组件,如果有人知道我将如何高兴知道!提前致谢

1 个答案:

答案 0 :(得分:1)

您应该在父组件中创建一个名为&#39; step&#39;并将您的逻辑外包以确定独立方法中的步骤

constructor(props){
   super(props);
   this.state = {
       step: 1
   }
}

stepsHandle() {
    ..some code to determine step ..
}

render(){
  const step = this.state.step;
  return(
    {step == 1 && <Step1/>}
    {step == 2 && <Step2/>}
    {step == 3 && <Step3/>}
  )    
}