javascript - 对映射数据执行条件渲染操作 - React
问题描述
我在返回的渲染中映射数据,但我想对已映射的数据执行条件......是否可以做这样的事情?
export default function App() {
const prod = [
{'name': '1'},
{'name': '2'},
{'name': '3'}
];
return (
<div className="App">
{prod && (
<div>
{prod.map(p => (
// This is the point I get an error
{p.name === '1' && (
<h1>This is 1</h1>
)}
))}
</div>
)}
</div>
);
}
目前我收到一个错误:
Unexpected token, expected "," (16:14)
14 | <div>
15 | {prod.map(p => (
> 16 | {p.name === '1' && (
| ^
解决方案
具有格式的箭头函数x => ()
返回括号的内容。
所以你正在返回编译器认为是一个对象,因为它被包裹在大括号中x => ({ ... })
你需要删除大括号:
prod.map(p => (
p.name === '1' && <h1>This is 1</h1>
)
或显式返回值:
prod.map(p => {
return p.name === '1' && <h1>This is 1</h1>
}
推荐阅读
- java - 为什么在方法中使用后赋值?
- java - 使用有状态数据选择 Android Hilt 中的 DI 存储库/服务时,我如何处理它们?
- react-native - 如何将 createBottomTabNavigation 中的道具发送到每个选项卡屏幕?
- flutter - Flutter Tab Bar Indicator:如何改变指标的垂直位置?
- node.js - 如何在 mongoDB 中聚合相同的集合
- sql - 使用 Where 从另一个表进行 SQL 更新
- javascript - Google API drive.files.get 和 drive.files.export 通过 Node File System API 将响应转换为 PDF 文件
- django-channels - 使用信号调用 django 消费者
- atom-editor - 在 Atom 中更改 UI 字体大小
- magento - Magento 2 REST API:产品价格和自定义属性颜色没有反映在响应中