为了账号安全,请及时绑定邮箱和手机立即绑定

如何将 props 传递给来自不同来源的组件?

如何将 props 传递给来自不同来源的组件?

宝慕林4294392 2021-11-18 09:52:34
我有一个组件<Box/>我想将来自不同来源的道具传递到这个数组中。问题是,每次我映射这两个函数并将它们的值传递给组件时,它都会为每个源分别渲染组件,从而使组件渲染的次数超过我想要的次数。例如,这就是我所做的return summaryData.map((item, i) => {         const { name, number } = item         return tableData.map((item, i) => {          const { row, column } = item            return <Box key={i} name={name} number={number} row={row} column={column}/>        })     })该框呈现每个函数单独运行的次数,但我希望两个函数同时运行并将数据传递给框组件
查看完整描述

2 回答

?
犯罪嫌疑人X

TA贡献2080条经验 获得超4个赞

在您的代码中,我发现您想以相同的顺序映射summaryData和 的属性,tableData对吗?我假设它们是对象列表。你可以试试这个:


return summaryData.map((item, i) => {

         const { name, number } = item

         return <Box key={i} name={name} number={number} row={tableData[i].row} column={tableData[i].column}/>

        })

     })

希望它有效。


查看完整回答
反对 回复 2021-11-18
?
largeQ

TA贡献2039条经验 获得超7个赞

您可以像下面这样连接两个数组并映射一次。


return summaryData.reduce((acc,{name,number},index) => {

  acc.push({

    name,

    number,

    row: tableData[index].row, //assuming you want value from the same index

    column: tableData[index].column} )

  return acc;

},[])

.map(({name,number,row,column},i) => (<Box key={i} name={name} number={number} row={row} column={column}/>));



查看完整回答
反对 回复 2021-11-18
  • 2 回答
  • 0 关注
  • 128 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信