【发布时间】:2021-04-15 09:02:12
【问题描述】:
在我从 API 获取的 React.js 代码中,我收到了这个错误 错误:重新渲染过多。 React 限制了渲染的数量以防止无限循环。 请问我做错了什么?
这是我在 App.js 中的 fetch 组件
const App = () => {
const [records, setRecords] = useState([])
const [loading, setLoading] = useState({ loading: false })
useEffect(() => {
(async function() {
try {
setLoading(true)
const res = await fetch('http://api.enye.tech/v1/challenge/records?limit=20&skip=0')
const data = await res.json();
setRecords({ records: data})
setLoading(false)
console.log(data);
} catch (err) {
console.error(err);
}
})()
}, [])
if(loading) {
return <Preloader />
}
return (
<Fragment>
<SearchBar />
<div className='container'>
<Records loading={setLoading()} records={setRecords()} />
</div>
</Fragment>
);
}
这就是我将获取的数据作为道具传递的地方
const Records = ({ records, loading }) => {
return (
<div className={styles.p__container}>
<div className="row">
<div className="col-sm-8">
<div className="py-3">
{records.length} Records
</div>
</div>
</div>
<div className={styles.p__grid}>
{records.map(record => (
<RecordItem key={record.id} record={record} />
))
}
</div>
<div className={styles.p__footer}>
</div>
</div>
)
我还想看看我是否可以从 API 中仅获取 20 个配置文件而不是 100 个
http://api.enye.tech/v1/challenge/records
【问题讨论】:
标签: javascript reactjs