提问人:CSAlex 提问时间:9/21/2023 最后编辑:DinhNguyenCSAlex 更新时间:9/23/2023 访问量:39
React Native ImagePicker 导致钩子调用无效
React Native ImagePicker causes Invalid hook call
问:
我正在尝试通过 ImagePicker 从图库中选择一张图片。 无论我尝试哪种 ImagePicker,“expo-image-picker”还是“react-native-image-crop-picker”,我总是遇到错误
Error: Invalid hook call. Hooks can only be called inside of the body of a function component.
我不会尝试在函数之外调用钩子。. 但是当我选择一张图片时,我返回一个正确的响应:
{"cropRect": {"height": 2242, "width": 1682, "x": 1155, "y": 0}, "height": 400, "mime": "image/jpeg", "modificationDate": "1695307585000", "path": "file:///storage/emulated/0/Android/data/com.clip/files/Pictures/4e0ae973-fd55-43ba-9758-34119952b375.jpg", "size": 103041, "width": 300}
代码如下所示:
import React from "react";
import {
NativeModules,
StyleSheet,
View,
Text,
ImageBackground,
Pressable,
} from "react-native";
import { Feather } from "@expo/vector-icons";
import ImagePicker from "react-native-image-crop-picker";
export default function ProfileScreen({ navigation, route }) {
const [image, setImage] = React.useState(null);
async function changeProfilePicture() {
await ImagePicker.openPicker({
width: 300,
height: 400,
cropping: true,
}).then((image) => {
console.log(image);
});
}
return (
<View style={styles.ViewStyle}>
<Pressable
style={styles.PressableProfilePictureStyle}
onPress={() => changeProfilePicture()}
>
<Feather name="edit" size={30} color="black" />
</Pressable>
</View>
);
}
答:
1赞
Arti
9/22/2023
#1
在 onPress 函数中,缺少一对括号。
onPress={()=> { changeProfilePicture() } }>
我不知道它是否相关,但在 return 语句中有一个额外的视图 标记它不应该在那里。
评论
0赞
Junius L
9/22/2023
不,它看起来不错
0赞
Adam Ri
9/22/2023
您不需要括号。只有在onPress中执行了多个方法时才需要这些方法。因此,如果您只执行一种方法,则不需要括号。
0赞
CSAlex
9/22/2023
#2
这与图像选择器无关。这是关于打开选取器时 Socket 连接断开并连接了几次的事实。
评论
0赞
Arti
9/22/2023
如果您修复了它,请将您的答案标记为正确。
0赞
CSAlex
9/23/2023
仍然:“您可以在 5 小时内接受自己的答案”
0赞
CSAlex
9/23/2023
当你再次发布我的帖子时,你会得到正确的答案
0赞
DinhNguyen
9/23/2023
#3
如果选择器运行良好并返回正确的响应,我认为这绝对不是图像选择器的错。
评论