Переименовать фотографию, сделанную Экспо - PullRequest
0 голосов
/ 28 апреля 2020

Я создал приложение, и в этом приложении я делаю фотографию с помощью экспо-камеры и сохраняю ее с помощью MediaLibrary, но не могу переименовать фотографию. Как я могу переименовать фотографию? Я попытался использовать String.slice и изменить имя в конце URI, но это не работает, потому что для использования String.slice URI необходимо создать до того, как будет сделана фотография.

Как мне сделать Фото:

 takePicture = async () => {
        if (this.camera) {
          let photo = await this.camera.takePictureAsync();
          this.setState({
            image: photo.uri,
            modalOpen: true
          });
        }
        console.log(this.state.image)
      }

Как сохранить:

saveImage = async (image, imageName) => {

    const asset = await MediaLibrary.createAssetAsync(image);
    MediaLibrary.createAlbumAsync('Geocad', asset)
      .then(() => {
        console.log('Album created!');
      })
      .catch(error => {
        console.log('err', error);
      });
    this.setState({
      modalOpen: false
    });
  }

Что я попробую:

        var str = image;
        var indices = [];
        for(var i=0; i<str.length;i++) {
            if (str[i] === "/") indices.push(i);
        }
        let indexNameSlice = indices.slice(-1,)[0]

        let oldImageName = image.slice(0,indexNameSlice)
        let newImageName = oldImageName+'/'+imageName+'.jpg'
        console.log('NEWIMAGENAME', newImageName+'/'+imageName+'.jpg')

        const asset = await MediaLibrary.createAssetAsync(newImageName);
...