Как скачать VUEX Store с блобами как JSON - PullRequest
0 голосов
/ 03 мая 2020

В моем магазине Vuex есть капли, и я хочу загрузить состояние моего приложения как. JSON и восстановить его.

В общем, JSON .stringify (store.state ,. ..) прекрасно работает без капель. Я просто не знаю, как я могу сохранить BLOB-объекты в JSON.

Вот мой код. Блок if(value instanceof Blob) содержит мою попытку конвертировать BLOB в JSON.

const s = JSON.stringify(store.state
      , (key, value) => {
        // let process = true;
      if (typeof value === 'object') {


        if(value instanceof Blob){

          //I can't get this to work:


          // const reader = new FileReader();

          // // let process = false;
          // reader.onload = function(event){
          //   console.log(JSON.stringify(reader.result));

          //   value = JSON.stringify(reader.result);
          //   return value;
          // };

          // reader.readAsText(value);
          // process = false;

          }

        // Duplicate reference found, discard key
        if (cache.includes(value)) return;

        // Store value in our collection
        cache.push(value);
       }
       if(process){
      return value;
       }
    })

    //download
    const newBlob = new Blob([s], { type: 'application/json;' });
    const filename = `jam-along-${new Date().getTime()}.json`;
    saveAs(newBlob, filename);
    cache = [];


  }

Другая идея заключалась в том, чтобы использовать Vuex-Persist для загрузки магазина с настроенным saveState: (key, state, storage) =>{..., но я не могу заставить его работать. Я не хочу, чтобы vuex-persist что-либо делал в sessionStore или localStorage, и я хочу вызвать saveState извне, не изменяя хранилище.

Есть ли способ загрузить и восстановить мой магазин vuex?

Спасибо!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...