【发布时间】:2023-04-03 22:12:01
【问题描述】:
使用 getContractsFromAPI 操作,我获得了 API 中的合约列表,然后使用 useState 和 renderContracts,我将它们显示在页面上,但这会启动对 useEffect 的无休止调用
const [contracts, setContracts] = useState({});
const contractsList = useAppSelector(({ contractsList }) => contractsList);
useEffect(() => {
dispatch(getContractsFromAPI());
setContracts(contractsList);
}, [contractsList, dispatch]);
return (
<div>
<h2>Contracts:</h2>
<ul className={styles.contractsList}>{renderContracts(contracts)}</ul>
</div>
);
如何解决问题?我试图从 useEffect 中删除 [contractsList, dispatch],但是在打开页面时不会发生初始渲染
【问题讨论】:
-
你从哪里得到
contractsList? -
我编辑了我的问题,现在你可以看到了
-
你有理由将它复制到 state 中吗?
-
我尝试在没有useState的情况下渲染contractsList,但它也会触发重新渲染
标签: javascript reactjs redux react-redux frontend