【发布时间】:2021-11-05 09:54:34
【问题描述】:
在我的函数中,我使用array.forEach 对数组进行排序,但它只返回元素。这是我的代码:
import React, {useState, useEffect} from "react";
import axios from "axios";
function Fact(props) {
const width = 18;
return (
<div class="card" style={{width: width + 'rem'}}>
<div class="card-body">
<h5 class="card-title">Fact number: {props.id}</h5>
<p class="card-text">{props.fact}</p>
</div>
</div>
)
}
function UserFacts(props) {
const email = props.email;
const [fact, setFact] = useState("");
const [id, setID] = useState("");
function getFact() {
axios.get("https://exampleapi/userfacts?email=" + email + "", { crossdomain: true }).then(response => {
const array = response.data
array.forEach(element => setFact(JSON.stringify(element.fact)));
array.forEach(element => setID(JSON.stringify(element.id)));
});
}
useEffect(() => {
getFact();
}, []);
return (
<Fact id={id} fact={fact} />
)
}
export default UserFacts;
【问题讨论】:
-
是
fact和id数组? -
当您调用 forEach 并调用 setFact 和 setID 方法时,您正在为每次迭代设置值。这意味着,只有最后一项将在迭代结束时设置。您需要不同的数据类型。
-
ForEach 旨在针对 éléments 执行操作,而不是返回元素
标签: javascript reactjs json for-loop axios