- 此问题在此处已有答案**:
(17个答案)
map function not working in React(3个答案)
昨天关门了。
我遇到了一个问题,我需要返回我在创建的foreach中调用的一些参数,但当我调用此函数时,它没有返回任何内容
import React, { useState, useEffect } from 'react';
/* Styles */
import styles from './styles.css'
export default function PalleteMeasurement(){
const [click,setClick] = useState(false)
const [data,setData] = useState([])
const clickButton = () =>{
setClick(!click)
}
useEffect(() => {
fetch('/api/dataentities/SC/search?_where=categoryName=Sandalia&_fields=categoryName,size01,size02,size03,size22,size22e23,size23,size23e24,size24,size24e25,size25,size25e26,size26,size26e27,size27,size27e28,size28,size28e29,size29,size29e30,size30,size30e31,size31,size31e32,size32,size32e33,size33,size33e34,size34,size34e35,size35,size35e36,size36,size36e37,size37,size37e38,size38,size38e39,size39,size39e40,size40,size40e41,size41,sizeUN')
.then((res) => res.json())
.then((data) => {
setData(data)
})
.catch((err) => {
console.log('Dados não encontrados:',err)
return false
});
}, [])
const dataMetricas = () => {
let keys = Object.keys(data[0]).filter(value => value.includes('size'));
return keys.forEach(function (value) {
if (data[0][value] != null) {
const metricasCM = data[0][value]/10
const textHead = value.replace('size','').replace('e', '/')
{
<div className={styles.box}>
<div className={styles.tamanho}>
<span>{textHead}</span>
</div>
<div className={styles.tamcm}>
<span>{metricasCM} cm</span>
</div>
</div>
}
}
})
}
return(
<>
<div className={styles.palletGuide}>
<h5>Guia de tamanhos aproximados</h5>
<div className={styles.buttonExtended} >
<div className={styles.buttonImage} onClick={clickButton}></div>
</div>
{
click ?
<div className={styles.containerTamanhos}>
<>
{dataMetricas()}
</>
</div>
: null
}
</div>
</>
)
}
我不知道是否需要再给这个函数加一个参数,或者我调用错了,但是现在,我不知道它是什么你能帮帮我吗?
2条答案
按热度按时间tgabmvqs1#
forEach不会返回任何您希望使用map的内容,如下所示:
如果有帮助就告诉我
rlcwz9us2#
forEach不返回一个新的数组,你需要使用Map函数来获得一个返回值,尝试这个并告诉我是否工作。更多信息请参见https://code.tutsplus.com/tutorials/javascript-map-vs-foreach-when-to-use-each-one--cms-38365