【发布时间】:2021-03-18 15:12:34
【问题描述】:
我想使用 useEffect 和 for-loop 来生成多个 JSX 元素,但在这种情况下没有渲染任何内容。
警告代码:“React Hook useEffect 缺少依赖项:'renderInfoCard'。要么包含它,要么删除依赖数组 react-hooks/exhaustive-deps”
import React, { useState, useEffect } from 'react';
import InfoCard from '../components/InfoCard.jsx';
import { getScenicSpotRequest } from '../request test.js';
function MainScreen() {
const [renderInfoCard, setRenderInfoCard] = useState(null);
const [renderInfoCardArray, setRenderInfoCardArray] = useState([]);
useEffect(() => {
//data recieve from axios request
getScenicSpotRequest().then(result => {
//want to use useEffect and for loop to generate multiple JSX elements
for (let i = 0; i < result.length; i++) {
setRenderInfoCard(<InfoCard Name={result[i].Name} Description={result[i].Description} Picture={result[i].Picture.PictureUrl1} />);
setRenderInfoCardArray[i] += renderInfoCard;
}
});
}, []);
return (
<div className="App">
<header className="App-header">
<Navbar NavbarTitle="ScenicSpot" />
{renderInfoCardArray}
</header>
</div>
);
}
export default MainScreen;
【问题讨论】:
-
您是否尝试过在警告中添加缺少的依赖项?
标签: javascript reactjs for-loop jsx use-effect