基于 OR 运算符的 React 渲染

lle*_*aly 1 reactjs

我正在创建一个菜单,根据用户角色显示项目。

有些项目必须显示角色是 A 还是 B,但我无法做到这一点。

代码示例:

      {
       (this.props.currentUser.role === 'admin') || ( this.props.currentUser.role === 'contra')  &&
        <Dropdown item text='ADMIN'>
          <Dropdown.Menu>
            {
              this.props.currentUser.role === 'admin' &&
            <div>
              <Dropdown.Item>
                <Link to="/companies/list">Companies</Link>
              </Dropdown.Item>
              <Dropdown.Item>
                <Link to="/obs-report">Obs Report</Link>
              </Dropdown.Item>
            </div>
            }
            <Dropdown.Item>
              <Link to="/users/list">Users</Link>
            </Dropdown.Item>
          </Dropdown.Menu>
        </Dropdown>
      }
Run Code Online (Sandbox Code Playgroud)

这仅正确显示“contra”角色的项目,不确定为什么不适用于“admin”角色。

也尝试过这个但没有成功:

this.props.currentUser.role === ('admin' || 'contra')
Run Code Online (Sandbox Code Playgroud)

lle*_*aly 9

忘记包了:)

((this.props.currentUser.role == 'admin') || ( this.props.currentUser.role == 'contra'))  &&
Run Code Online (Sandbox Code Playgroud)

希望它可以帮助某人

谢谢!