gpt4 book ai didi

reactjs - 使用 useEffect 刷新表

转载 作者:行者123 更新时间:2023-12-03 18:44:20 25 4
gpt4 key购买 nike

我是新来的,我有以下问题:useEffect 正在无限次更新,但我只想在我插入新记录时更新数据,如果有人能纠正我,我将不胜感激。

这是我的代码:

索引.js

import {createUser, getUsers} from '../actions';

const Home = () => {
const [data, setData] = useState([]);

useEffect(() => {
async function fetchData(){
const result = await getUsers();
setData(result);
console.log("teste: ", result);
}
fetchData();
}, [setData]);

const handleCreateUser = (user) => {
createUser(user).then((users) => {
});
};

如果我使用第二个参数 useEffect(() => {}, [setData]),它会打破无限循环,但当我插入新寄存器时表不会更新,我需要使用 F5。

我究竟做错了什么?
创建用户工作正常,我只想在同一时间添加表

最佳答案

useEffect 中,如果没有第二个参数(依赖项数组),您的效果将无限期运行。

如果您只希望您的效果仅在您创建新用户时运行,您可以创建一个单独的状态,然后将其包含到 useEffect 的依赖项中,例如将其称为 refreshKey。我的建议是:

import {createUser, getUsers} from '../actions';

const Home = () => {
const [data, setData] = useState([]);
const [refreshKey, setRefreshKey] = useState(0);

useEffect(() => {
async function fetchData(){
const result = await getUsers();
setData(result);
console.log("teste: ", result);
}
fetchData();
}, [refreshKey]);

const handleCreateUser = (user) => {
createUser(user).then((users) => {
// Refresh the effect by incrementing 1
setRefreshKey(oldKey => oldKey +1)
});
};

关于reactjs - 使用 useEffect 刷新表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59803959/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com