redux React Native Expo ImagePicker -第一次获取未定义的image.uri,但第二次保存正常

zysjyyx4  于 2023-01-26  发布在  React
关注(0)|答案(1)|浏览(88)

我有一个用android拍照的功能,用Expo-Image-Picker,我把结果保存在一个本地状态pickedUri,然后通过调度发送到Redux状态,第一次得到pickedUri是未定义的,但是第二次它保存了第一张拍的照片,我觉得问题出在异步功能上。

const handlerTakeImage = async () => {
    const isCameraOk = await verifyPermissions();
    if (!isCameraOk) return;

    const image = await ImagePicker.launchCameraAsync({
        allowsEditing: true,
        aspect: [16, 9],
        quality: 0.8,
    });

    setPickedUri(image.uri);
    console.log(pickedUri);

    pickedUri && dispatch(saveImage(pickedUri, props.itemId));
};
fhg3lkii

fhg3lkii1#

我通过将image.uri数据直接发送给调度来修复它,而不是将其保存在本地状态中。

const handlerTakeImage = async () => {
    const isCameraOk = await verifyPermissions();
    if (!isCameraOk) return;

    const image = await ImagePicker.launchCameraAsync({
        allowsEditing: true,
        aspect: [16, 9],
        quality: 0.8,
    });

    dispatch(saveImage(image.uri, props.itemId))
};

我不知道这是不是个好办法。我可以考虑其他选择。

相关问题