反应三元运算符错误

时间:2017-10-30 17:04:26

标签: javascript reactjs jsx ternary-operator

我尝试仅使用三元运算符将仅由用户创建的firebase数据返回到其主页,但我一直收到错误:语法错误:意外的令牌,预期 < / p>

任何人都可以看到代码出错的地方吗? 如果我将三元组包裹在删除按钮周围,它将工作,只允许用户删除它们创建的项目。我想只显示他们创建的东西。 反应代码如下:

  <ul>
  {this.state.items.map((item) => {
    return (
      {item.user === this.state.user.displayName || item.user === this.state.user.email
      ? <li key={item.id}>
          <h3>{item.topic}</h3>
          <p>author: {item.user}
            <button onClick={() => this.removeItem(item.id)}>Remove Item</button>
          </p>
        </li>
      : null}
    )
  })}
  </ul>

1 个答案:

答案 0 :(得分:2)

Embedding Expressions in JSX:

  

您可以通过将其包装为卷曲来在JSX中嵌入任何JavaScript表达式   括号。

当我们想在JSX中放置一些js表达式时需要

{},在你的情况下它不是必需的。如果您使用{},则表示您正在尝试返回对象。

像这样写:

return (
    item.user === this.state.user.displayName || item.user === this.state.user.email?
        <li key={item.id}>
            <h3>{item.topic}</h3>
            <p>
                author: {item.user}
                <button onClick={() => this.removeItem(item.id)}>Remove Item</button>
            </p>
        </li>
    : null
)