反应三元运算符错误

React ternary operator error

我尝试仅 return 使用三元运算符将仅由用户创建的 firebase 数据发送到他们的主页,但我不断收到错误消息:语法错误:意外令牌,预计

谁能看出代码哪里出错了? 如果我将三元组包裹在删除按钮周围,它将起作用,只允许用户删除他们创建的项目。我只想显示他们创建的东西。 反应代码如下:

  <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>

Embedding Expressions in JSX:

You can embed any JavaScript expression in JSX by wrapping it in curly braces.


{} 当我们想在 JSX 中放置一些 js 表达式时需要,在你的情况下它不是必需的。如果您使用 {},则表示您正在尝试 return 一个对象。

这样写:

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
)