React函数使用过时状态



我使用react-query来获取外部数据,基于当前状态,这里是代码如何看起来像

const Home = () => {
const queryClient = useQueryClient();
const [group, setGroup] = useState(1);
const query = useQuery('/query', async () => {
console.log(group);
return axios.get('/query', { params: { group } });
});
useEffect(() => {
queryClient.invalidateQueries('/query');
}, [group, queryClient]);
return (
<div>
<button onClick={() => setGroup(1)}>First group</button>
<button onClick={() => setGroup(2)}>Second group</button>
</div>
);
};

有2个按钮,改变状态(组),当状态改变(useEffect)我作废旧查询发送新的查询,但问题是,回调只有初始状态,而不是更新的状态,当它得到执行,它打印出初始状态

我认为你应该这样修改你的useQuerysection

const query = useQuery(['/query', group], async () => {
console.log(group);
return axios.get('/query', { params: { group } });
});

相关内容

  • 没有找到相关文章

最新更新