reactjs - 反应过滤器仍然输出过滤值
问题描述
我正在尝试过滤 name 值为空白或 null 的对象数组。但是,包含 - "" - 的名称值仍会呈现给浏览器。你能看看我的代码并告诉我我做错了什么吗?谢谢你。
import NameList from './NameList.js';
const ItemTable = (props) => {
const filteredNames = props.items.filter(function (item) {
return item.name !== null || item.name !== "";
});
return (
<ul>
{filteredNames.map((item) => (
<NameList
key={item.id}
listId={item.listId}
name={item.name}
/>
))}
</ul>
);
}
export default ItemTable;
解决方案
!!value
将检查 value 中的变量是否具有有效内容。您也不需要创建另一个不需要的数组。可以直接渲染。
import NameList from "./NameList.js";
const ItemTable = (props) => (
<ul>
{
props.items.map((item) => (
!!item.name ?
<NameList key={item.id} listId={item.listId} name={item.name} />
:
null
))
}
</ul>
);
export default ItemTable;
推荐阅读
- html - 使用时图像不适合容器,但与背景图像一起使用
- ios - 在 iOS Cordova 应用程序中渲染纹理时出现安全错误
- c# - 我无法在提升的 Windows 应用程序中全局挂钩键盘
- javascript - 在 R Shiny 中向嵌套数据表添加其他按钮
- python - 优化 2 个用 Python 编写的函数
- parsing - Flex:词法分析器删除 Haskell 中的多注释行
- unetstack - 有没有办法为自定义频道提供水深测量?
- c# - 想用 C# 中的 dll 来编译一个基本程序
- single-sign-on - 使用 Pingfederate 作为 SP 和 Okta 作为 IDP
- mysql - SQL将值从一个表复制到另一个