1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
| import React from react;
let pageNumber = 1;
const Feature = () => {
const onLoadMore = () => { setLoading(true); setListData( data.concat( [...new Array(pageSize)].map(() => ({ createdAt: '', uri: '', loading: true, })), ), ); pageNumber++;
request.get(list, { pageNumber, pageSize }).then(res => { })
return ( <div onClick={onLoadMore}>加载更多</div> ) } export default Feature;
|
当前文件中,我们在 Feature 函数前面定义了一个pageNumber
变量,每次调用onLoadMore
则pageNumber++
,这个逻辑在当前页面没有问题。
当我们离开这个组件,下次重新进入时,pageNumber
的值不是预期的1
,而是1+onLoadMore的调用次数
。也就是说Feature函数
前定义的变量,不会随Feature函数
的销毁而销毁。
而且这个变量是被所有 Feature
组件共享的。
参考: https://zh-hans.react.dev/learn/referencing-values-with-refs#fix-debouncing