我有一个数组和一个状态数组。
const [formData, setFormData] = useState([]);
let ure = [{}]
useEffect(() => {
axios
.get("/api/listUre")
.then((res) => {
console.log(res.data)
//setFormData(res.data);
ure.push({
class_id: res.data.class_id
})
})
.catch((error) => {
// Handle the errors here
console.log(error);
})
.finally(() => {
});
}, []);
一旦我这样做了,我现在想从表内访问class_id
:
{ure.length > 0 &&
ure.map((obj, index) => {
<tr key={index}>
<td>
{obj.class_id}
</td>
<td>
{obj.class_id}
</td>
<td>
My Name
</td>
</tr>
})}
{ure.length === 0 && "No Data Found"}
我不确定我做错了什么,但它没有输出任何东西到页面。我知道ure
数组中有数据,因为它没有将"No Data Found"
输出到屏幕,所以它应该是工作的。有人能帮我吗?
我认为你需要ure
是一块状态,否则你的ure
数组将不断获得重新评估每次你的组件重新渲染。
const [ure, setUre] = useState([]);
然后更改ure
,只需这样做:
setUre(currUre => {
return currUre.concat([{ foo: bar }]);
})
然后,要遍历它,您不需要检查length > 0
,只需检查map()
就可以了。
你看到这个结果(没有表但没有空数组)的原因是你初始化了let ure = [{}]
,它是一个大小为1的数组,里面有一个空对象。