如何使用useEffect和useState修复此最大深度超出错误?

我有从 redux 中提取的事件,如果events数组包含数据,updateData则将用于将事件过滤到状态 var 中data

我已经dataevents都添加到了这里提到的依赖数组中。但我仍然收到此错误:

const SingleTable = () => {
    const events = useSelector(state => eventsSelector(state));
    const [data, updateData] = useState([]);
    const [sortCol, updateSortCol] = useState(0);
    const [sortDir, updateSortDir] = useState('ascending');

    useEffect(() => {
        const formattedArray = events ? formatLoss(events): [];

        events && updateData(formattedArray);
    }, [data, events]);

    //...

想法,想法?

回答

因为每当数据更改时您都在执行 useEffect 回调,并且您正在更改 useEffect 回调中的数据。

删除数据作为依赖项。

使用此代码修复它

const SingleTable = () => {
const events = useSelector(state => eventsSelector(state));
const [data, updateData] = useState([]);
const [sortCol, updateSortCol] = useState(0);
const [sortDir, updateSortDir] = useState('ascending');

useEffect(() => {
    const formattedArray = events ? formatLoss(events): [];

    events && updateData(formattedArray);
}, [events]);

//...


以上是如何使用useEffect和useState修复此最大深度超出错误?的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>