const [count, setCount] = useState(0);
const fetch = () => {
fetchMoreData(count)
};
const handleClick = () => {
// 每次 fecth 前都要重置一下 count
setCount(0);
fetch()
};
这段代码 每次 handleClick 都要重置 count 的值为 0 ,然后使用 fetch 获取数据,fetch 会使用 count 的值; 如果上面的写法的问题是,count 在使用的时候并没有设置为 0
如果改为 useEffect 方式,如果 count 的值没有变化,又不会触发
const [count, setCount] = useState(0);
const fetch = () => {
fetchMoreData(count)
};
useEffect(() => {
fetch();
}, [count]);
const handleClick = () => {
// count 的值之前就是 0 ,上面的 useEffect 不触发
setCount(0);
};
所以,上面的这种情况该如何处理呢? 刚接触 react 感觉很简单的逻辑,在 react 里处理起来好复杂
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.