【发布时间】:2021-02-03 18:08:43
【问题描述】:
所以我们有一个包含大约 200/300 个按钮的平面列表 这些按钮获得了一个功能,该功能在 5 次点击后显示广告。 所以我们使用 useState 来统计点击次数。
但是.. 因为我们更新了函数内部的计数,所以它再次调用它自身并重新呈现所有平面列表项/按钮并导致滞后/延迟。
“滞后是什么意思?”
例如,通常您可以点击按钮进行垃圾邮件,一切都很好,但是当 setCount(prev => prev +1) 未注释时,它只会慢慢冻结并落后
代码:
import React, {useCallback, useState} from 'react';
import {TouchableOpacity,FlatList, View, Text} from 'react-native';
const data = ['IMAGINE 200 items here.']
const test = () => {
const [count, setCount] = useState(0);
const TestFunction = useCallback(async () => {
setCount(prev => prev + 1);
if (count === 5) {
/*for example show a add*/
showAd();
}
}, [count]);
return (
<View>
<FlatList data={data} renderItem={() => React.useMemo(<TouchableOpacity onPress={TestFunction}>
<Text>Test</Text>
</TouchableOpacity>)}>
</FlatList>
</View>
);
};
const showAd = () => {
/*for example show a add*/
};
【问题讨论】:
标签: reactjs react-native react-functional-component