reactjs - 在 lodash forOwn 中创建 React 组件
问题描述
拥有一个接受时间戳、电子邮件和 chatTxt 作为道具的 React 功能组件
function UserChat({timestamp,email,chatTxt}) {
return (
.....
)
}
需要从表单的对象集合创建的上述反应组件的集合
timestamp: {email: chatText}
通过使用 lodash ,forOwn
forOwn(props.chatObj, (value,timestamp) =>
forOwn(value, (chatTxt,email) => {
})
})
由于 Lodash forOwn 只返回自身迭代的对象,那怎么做呢?
解决方案
如果要呈现 UserChat 组件列表,则需要一个数组,因此请_.map()
使用_.forOwn()
.
使用 迭代对象时_.map()
,传递给迭代对象(被调用函数)的第二个参数是键 ( timestamp
)。无需迭代value
,只需将其传播到组件上即可:
_.map(props.chatObj, (value, timestamp) => (
<UserChat {...value} timestamp={timestamp} key={timestamp} />
))
使用 vanilla JS 使用Object.entries()
[key, value] 对,然后使用Array.map()
和解构来获取timestamp
和其他值:
Object.entries(props.chatObj).map(([timestamp, value]) => (
<UserChat {...value} timestamp={timestamp} key={timestamp} />
))
推荐阅读
- python - Python:从命令行运行时包含库文件夹
- asp.net-mvc - ElasticSearch 对特定值进行排序
- postgresql - 如何配置基于 x509 客户端证书的身份验证以连接到基于 AWS RDS 的 PostgreSQL
- python-3.x - “'int' 对象不可迭代”没有 int
- angular - 材料模态异常行为
- laravel - 如何使用 vue 和 laravel 将数据插入数据库
- python - Django如何用外键保存表单集?
- python - 如何通过 Selenium 和 Python 加载现有的 FirefoxProfile
- php - 如何使用 phpword 渲染带有图像标签的 HTML?
- javascript - 使用来自 nodejs 服务器的 typescript 连接到 postgresdb