我正在使用带有图像选择器的 react native 和 expo。出于某种原因,我的choosefromlibrary 函数没有设置状态,因此我可以读取它并插入文件位置以供查看。位置不是必需的,我试过 setImageLocation(result.uri) 无济于事,所以我只是尝试不同的东西。 result.uri 用console.log 打印,位置用console.log 打印,但是当我console.log(imageSelected) 什么都没有返回
const [imageSelected, setImageSelected] = useState("");
const chooseFromLibrary = async () => {
let location = "";
let result = await ImagePicker.launchImageLibraryAsync({
mediaTypes: ImagePicker.MediaTypeOptions.All,
allowsEditing: true,
aspect: [4, 3],
quality: 1,
});
location = result.uri;
setImageSelected(location);
console.log(imageSelected);
}
答案 0 :(得分:0)
更改 imageSelected
状态不会反映在您对 chooseFromLibrary
的调用中。该值在您调用该函数的渲染期间固定为任何值。
如果您想对设置为状态的 location
执行某些操作,请直接在函数调用中使用 location
(或者您可以每次使用 useEffect
执行某些操作{ {1}} 次更改)。