我有一个显示一些游戏数据的 react-table 组件。
该组件使用钩子来设置状态,如下所示:
const [data, setData] = React.useState([]);
React.useEffect(() => {
gameData(false).then(res => {
setData(res.data);
});
}, []);
在我的表中,我有一个按钮,可以通过对 api 的 Put 请求添加或删除行。
我希望它在不进行完整/可见页面刷新的情况下删除该行。
这是执行 axios put 请求的代码。
您可以看到我正在尝试再次使用“setData”来“刷新”数据。
但这不起作用。现在它确实删除了该行,但我只能在按 f5 或按浏览器刷新按钮后才能看到。
const updateGame = async (game, action) => {
await new Promise(resolve => setTimeout(resolve, 500));
game.isApproved = action;
axios({
method: "PUT",
url: "api/games/" + game.id,
data: JSON.stringify(game),
headers: { 'Content-Type': 'application/json; charset=utf-8' }
});
// trying to refresh table after the axios Put request
setData(data);
};
有没有办法动态刷新状态而不必点击刷新?
谢谢!