【问题标题】:How to push multiple images in an array?如何在一个数组中推送多个图像?
【发布时间】:2020-12-27 14:14:26
【问题描述】:

我正在创建一个 React Native 应用程序。我想创建一个图像数组,因为我需要将它们上传到服务器。但是当我上传多张图片时,它们不会像数组一样存储。每次 imagesQueue 数组只有一张图片。

我的代码如下。

const [filePath, setFilePath] = useState({
        imagesQueue: []
    });

const chooseFile = () => {
    const options = {
        title: 'Select an option',
        storageOptions: {
            skipBackup: true,
            path: 'images',
        },
    };

    ImagePicker.showImagePicker(options, (response) => {
        // console.log('Response = ', response);
        if (response.didCancel) {
            console.log('User cancelled image picker');
        } else if (response.error) {
            console.log('ImagePicker Error: ', response.error);
        } else {
            // let source = response;
            // You can also display the image using data:
            let source = {
                uri: 'data:image/jpeg;base64,' + response.data
            };
            setFilePath({
                ...filePath,
                imagesQueue: [source],
            });
            console.log("stored item : " + filePath.imagesQueue);
        }
    });
};

如何以相同的状态存储多个图像。提前致谢。

【问题讨论】:

    标签: arrays image react-native


    【解决方案1】:

    数据可能会存储在 formData 中 - 这是一种便于以后将其传递给 BE 的格式。

    首先,您需要将这些数据存储在某个地方:

      const [selectedFiles, setSelectedFiles] = useState([]);
    

    以后有可能使用.concat() - 该函数连接2个数组:

      setSelectedFiles(((prevState) => prevState.concat(fileData)));
    

    在最后一步,您需要将这些数据传递给您的表单:

    const formData = new FormData();
    
    for (let i = 0; i < selectedFiles.length; i++) {
      formData.append('Files', selectedFiles[i].File);
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-04-17
      • 1970-01-01
      • 2021-08-25
      • 1970-01-01
      • 2015-06-10
      • 1970-01-01
      • 1970-01-01
      • 2017-10-03
      相关资源
      最近更新 更多