javascript - 如何使用短路评估在内联条件后渲染多个元素?

标签 javascript reactjs

在功能组件中使用短路评估(带钩子(Hook)):

const Filters = () => {
  const [options, setOptions] = useState([]);

  return (
    <div className="row">
      {options.length > 0 && (
        <div className="col-md-3">
          <CustomComponent />
        </div>
      )}
    </div>
  )
}

有没有办法在内联 if 条件之后立即渲染多个元素?

{options.length > 0 && (
  <div className="col-md-3">
    <CustomComponent />
  </div>
  <div className="col-md-3">
    <SecondComponent />
  </div>
)}

上面的代码不起作用,react 抛出错误。 options 数组在从 useEffect() 解析 Promise 后填充。这就是为什么我添加了此检查,以便仅在 promise 解决时才显示元素。

@wentjun 的更新代码:

return (
  {options.length > 0 && (
    <div className="row">
      <div className="col-md-3">
        <CustomComponent />
      </div>
    </div>
  )}
  )

这会引发语法错误。

最佳答案

我认为错误是由于返回两个 react 元素造成的。尝试将其包装在片段中

{options.length > 0 && (
  <>
    <div className="col-md-3">
      <CustomComponent />
    </div>
    <div className="col-md-3">
      <SecondComponent />
    </div>
  </>
)}

关于javascript - 如何使用短路评估在内联条件后渲染多个元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59936984/

相关文章:

html - 如何创建一个旁边有表格的英雄形象并制作全 Angular ?

javascript - 使用其余属性解构 props

javascript - 类型错误 : middleware is not a function in store

javascript - 单击表单中包含所需输入的提交按钮后如何重定向到另一个页面

javascript - 如何使用 jQuery 将 select 的值保存在 cookie 中?

javascript - Chrome 扩展 - 设置点击元素的文本

reactjs - 如何使用 redux-form 选择器使syncErrors脱离状态

reactjs - 在 typescript 中增加 react 类型的问题

php - javascript 相当于 php $$ dollar dollar

javascript - 为什么 WAV 格式在不同的浏览器中没有相同的 mimetype?