【问题标题】:Is there a better way to write this ternary expression in JSX?有没有更好的方法在 JSX 中编写这个三元表达式?
【发布时间】:2018-05-23 21:00:56
【问题描述】:

在这个 JSX 的 sn-p 中,有没有更好的方法来写这个三元表达式?

<Form ... error={this.props.errorMessage ? true : false}>

【问题讨论】:

    标签: reactjs


    【解决方案1】:

    您可以通过以下方式稍微缩短它:

    <Form ... error={!!this.props.errorMessage}>
    

    !! 会将值转换为 truefalse,具体取决于该值是真还是假。

    【讨论】:

    • 谢谢。我对JS很陌生。你能告诉我这是否被广泛使用还是会让大多数人感到困惑。
    • 根据我的经验,!! 通常不是 JS 101,而且大多数 JS 开发人员偶然遇到它,所以这取决于 - 如果您所在的团队大多数是经验丰富的 JS 开发人员,他们以前会看到这种语法。如果团队成员是 JS 新手并且有其他编程语言(尤其是静态语言)的经验,我会说保留原来的方式会更清楚。
    【解决方案2】:

    你可以double negateerrorMessage 道具:

    <Form ... error={!!this.props.errorMessage}>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2010-10-06
      • 1970-01-01
      • 1970-01-01
      • 2020-02-18
      • 1970-01-01
      • 1970-01-01
      • 2023-03-27
      • 2013-08-18
      相关资源
      最近更新 更多