Bisakah saya menyimpan atau menyimpan gambar dalam cache secara lokal di React Native?

Saya memiliki aplikasi berita dan saya ingin menyimpan gambar secara lokal saat pertama kali mendapatkannya.

AsyncStorage React Native menerima data string nilai kunci. Bisakah saya menggunakannya?

Di browser saya menggunakan canvas untuk mendapatkan data uri atauBlobBuilder untuk mendapatkan BLOB, tidak yakin apakah itu berfungsi di React Native.


person Brick Yang    schedule 03.02.2016    source sumber


Jawaban (1)


Anda dapat melakukannya dengan sesuatu seperti berikut:

const STORAGE_KEY = 'yourkey';

Api.getImages()           // Replace Api.getImages() with your data source.
  .then((data) => {

    var images = data; 

    // Set a key for AsyncStorage, and Stringify the data
    AsyncStorage.setItem(STORAGE_KEY, JSON.stringify(data))

    this.setState({
      images : images,
    });

  })

Kemudian ambil seperti ini:

AsyncStorage.getItem(STORAGE_KEY)
  .then((storedData) => {
    var parsedData = JSON.parse(storedData)  
    // do something with the parsedData
  })
  .catch((err) => {
    // Could set the AnsyncStorage key here since it was not found.
  })
person Nader Dabit    schedule 03.02.2016
comment
Terima kasih. Bisakah Anda ceritakan lebih detail tentang Api.getImages() dan data? - person Brick Yang; 04.02.2016
comment
Tentu, saya baru saja menggunakannya sebagai fungsi umum yang mengambil data dari beberapa api. Anda menyarankan agar aplikasi mengambil gambar dari suatu tempat, sehingga pada dasarnya Anda dapat mengganti fungsi Api.getImages() dengan fungsi apa pun yang Anda gunakan untuk mendapatkan data. - person Nader Dabit; 04.02.2016
comment
Maksud Anda kita harus menyimpan data dalam format Base64? Bagaimana cara mengonversi gambar dengan cepat ke Base64? - person Ivan Chernykh; 15.06.2016