我已经阅读了一些关于何时使用和何时不使用useCallback
和useMemo
的文章,但我大多数情况下看到的都是非常牵强附会
的代码。我正在查看公司的一段代码,发现有人这样做:
const takePhoto = useCallback(() => {
launchCamera({ mediaType: "photo", cameraType: "front" }, onPickImage);
}, []);
const pickPhotoFromLibrary = async () => {
launchImageLibrary({ mediaType: "photo" }, onPickImage);
}
const onUploadPress = useCallback(() => {
Alert.alert(
"Upload Photo",
"From where would you like to take your photo?",
[
{ text: "Camera", onPress: () => takePhoto() },
{ text: "Library", onPress: () => pickPhotoFromLibrary() },
]
);
}, [pickPhotoFromLibrary, takePhoto]);
这是如何调用 onUploadPress 的:
<TouchableOpacity
style={styles.retakeButton}
onPress={onUploadPress}
>
您认为这样叫正确吗?根据我对这些文章的理解,这看起来是不正确的。请问什么情况下需要使用
useCallback
函数?能否用更通俗易懂的语言解释一下useCallback
?我阅读的文章:何时使用useMemo和useCallback。