Array.map()运行两次

时间:2020-04-24 15:53:22

标签: javascript arrays reactjs

我的数组长度为8

const [macs,setMacs]=useState([{"mac_empfangen":"f2:c5:5b:1c:d8:59"},{"mac_empfangen":"c4:9f:1a:15:30:65"},...])

现在我想用

来映射这个数组
const nameMacs=(
   macs.map(mac=>(
      <AddDevice mac_empfangen={mac.mac_empfangen}/>
   )
)

但是当我在控制台中记录结果时,

const nameMacs=(
   macs.map(mac=>(
      console.log(mac)
      <AddDevice mac_empfangen={mac.mac_empfangen}/>
   )
) 

然后我看到,该函数在数组上映射了两次。

任何想法,如何解决?

1 个答案:

答案 0 :(得分:0)

const nameMacs = useMemo(() => {
    <>
    {macs.map((mac, i) =>
    <AddDevice key={i} mac_empfangen={mac.mac_empfangen} />
    )}
    </>
}, [macs])

这样,namemacs仅在macs更改时才会重新加载。另外,不要忘记钥匙。