首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在lodash中创建React组件

在lodash中创建React组件
EN

Stack Overflow用户
提问于 2020-08-22 09:34:26
回答 1查看 54关注 0票数 0

拥有一个接受时间戳、电子邮件和chatTxt作为道具的React功能组件

代码语言:javascript
复制
function UserChat({timestamp,email,chatTxt}) {
    return (
      .....
    )
}

需要从窗体的对象集合中创建上述react组件的集合。

代码语言:javascript
复制
timestamp: {email: chatText}

通过使用lodash,forOwn

代码语言:javascript
复制
forOwn(props.chatObj, (value,timestamp) => 
        forOwn(value, (chatTxt,email) => {
            
        })
  })

既然Lodash forOwn只返回自己迭代过的对象,那么怎么做呢?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-08-22 11:57:46

如果要呈现UserChat组件的列表,则需要一个数组,所以使用_.map()而不是_.forOwn()

当使用_.map()迭代对象时,第二个参数传递给迭代器(被调用的函数)是关键(timestamp)。不需要迭代value,只需将其扩展到组件上:

代码语言:javascript
复制
_.map(props.chatObj, (value, timestamp) => (
  <UserChat {...value} timestamp={timestamp} key={timestamp} />
))

在vanilla中,使用Object.entries()对键、值进行配对,然后使用Array.map()和析构来获得timestamp和其他值:

代码语言:javascript
复制
Object.entries(props.chatObj).map(([timestamp, value]) => (
  <UserChat {...value} timestamp={timestamp} key={timestamp} />
))
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63534684

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档