javascript - 为什么这等于 True 并因此在 React 中渲染一个 div ?

标签 javascript reactjs logic jsx

我有点困惑为什么当 errors.email 不是 false 值时会呈现这种情况。 JSX 是否会被忽略,并且只查看右侧的errors.email,因此基本上表达式是 if (errors.email && error.email)

只是有点奇怪。我以前从未见过这个。

{ errors.email && ( <div className="invalid-feedback">{errors.email}</div> ) }

最佳答案

与其他一些语言不同,&&|| 不一定会产生 truefalse;相反,它们取其操作数之一的值。

对于&&:

  • 如果 errors.emailfalsy,则 && 表达式的结果是 errors.email 的值 (并且右侧永远不会被评估)。

  • 如果 errors.emailtruthy,则对右侧进行求值,并且由它创建的对象(对其的引用)将成为以下结果&& 表达式。

关于javascript - 为什么这等于 True 并因此在 React 中渲染一个 div ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50076928/

相关文章:

javascript - 搜索文本框的 XSS 脚本

javascript - 在 node.js 中 `module` 总是一个对象吗?

reactjs - 使用 header 通过 fetch-mock 模拟获取请求

javascript - 我如何调整大小,然后使用 react-redux 渲染到 Canvas

java - 在控制台中显示文本文件中的信息

C++ for 循环字符串比较逻辑存在缺陷

javascript - 为什么 "Product Quick View"JavaScript 插件会影响不是由操作触发的分区?

javascript - 获取表单内选择框的数组值

javascript - 坚持逻辑试图定位一些动态的东西

javascript - React Select 受控 Prop menuIsOpen 不再可点击菜单