【问题标题】:Ternary operator in the render method渲染方法中的三元运算符
【发布时间】:2018-11-21 02:07:21
【问题描述】:

如果用户未登录,我会尝试显示一条消息。 请在此处登录以继续。

在我的渲染方法中,我需要检查用户是否已经登录以不显示任何消息。
我还有一个登录方法,可以将用户引导到登录页面。 (

{
  this.props.isAuthed 
    ? <div> </div>
    : <div> Please login<Button color="inherit" onClick={this.login}>here</Button></div>
}

我有两个问题。一个是上面的 if 语句不起作用,因为它不是 if else 语句。 (我找到的唯一解决方案是添加一个空的&lt;div&gt;

另一个问题是我需要显示一个看起来像超链接文本的按钮,因为我无法在 href 中调用 this.login 函数。现在“登录”和“这里”之间有一个很大的空间(因为按钮)。我还需要将“此处”设为红色以告知用户它是可点击的。

【问题讨论】:

  • ? 部分可以只是"" 否?
  • 是的,但它与我提到的空 div 没有什么不同。
  • 汉娜,请针对您遇到的第二个问题提出第二个问题。这是两个完全不相关的问题。
  • I can't call the this.login function in a href - 为什么?
  • 为什么不呢? &lt;a onClick={}&gt;??

标签: javascript reactjs


【解决方案1】:

使用简单的布尔表达式:

 {!this.props.isAuthed &&
  <div> Please login<Button color="inherit" onClick={this.login}>here</Button></div>
 }

【讨论】:

  • 谢谢!第二个问题你有什么解决办法吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-12-08
  • 2014-11-27
  • 2021-04-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-01-03
相关资源
最近更新 更多