javascript - react 。条件渲染

标签 javascript reactjs if-statement

我有一个 React 组件:

class SignUpStepTwo extends Component {
  constructor(props) {
    super(props);
    this.state = {
      isTherapistUpdated: false,
      isProfessionalInfoAdded: false,
    }
  }

  render() {

    if (!this.state.isTherapistUpdated) {
      return (
        <StepTwoPersonalInfo />
      );
    }
    else if (this.state.isTherapistUpdated) {
      return (
        <StepTwoProfessionalInfo />
      );
    }
    else if (this.state.isProfessionalInfoAdded &&
      this.state.isTherapistUpdated) {
      return (
        <StepTwoTermsOfUse />
      );
    }
  }
}

export default SignUpStepTwo;

我正在尝试更改我的 bool 标志并有条件地渲染我的组件。 但最后if永远不会满足,<StepTwoTermsOfUse/>组件未渲染。

最佳答案

这是因为即使 this.state.isProfessionalInfoAdded 和 isTherapistUpdated 都为 true,第二个条件也满足。

要实现此目的,您应该将第三个条件放在第二个条件之前。另外,我对您的代码进行了一些重组,以跳过不必要的检查:

if (this.state.isProfessionalInfoAdded && this.state.isTherapistUpdated) {
  return (
      <StepTwoTermsOfUse/>
  );
}

if (this.state.isTherapistUpdated) {
  return (
      <StepTwoProfessionalInfo/>
  );
}

return (
    <StepTwoPersonalInfo />
);

关于javascript - react 。条件渲染,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55536489/

相关文章:

javascript - 当取消选中所有 child 的父复选框时,也应该使用 jquery 取消选中

javascript - Ionic App 的 Karma 单元测试。错误 : [ng:areq] Argument 'StockCtrl' is not a function, 未定义

javascript - 在 ReactJS 中按住 ctrl + 单击时在新选项卡中打开链接?

reactjs - 如何使用父组件将一个子组件的 Prop 传递给另一个子组件

javascript - React-Router无法跳转到页面

javascript - 按下其他键时检测鼠标单击

javascript - 为什么这个对象突然未定义?

php echo 如果查询为空

javascript - jQuery 如果 data-id 元素 hasClass 不起作用

Java if 语句在比较两个字符串时失败