установить значение в хранилище сессии, не отражая в данных - PullRequest
0 голосов
/ 09 июля 2019

Я делаю вызов axios и устанавливаю некоторые значения для хранения сеанса в main.ts ... Я надеялся получить это в следующем компоненте ... но его undefined ... в main.ts

saveConfigToSessionStorage()
new Vue({
    router,
    store,
    i18n,
    render: (h) => h(App),
  }).$mount('#app')
}

в saveurlToSessionStorage, у меня просто есть метод, который вызывает axios и устанавливает для хранения сеанса

import Axios from 'axios'

let url = '/config/myurl.json'
function fetchConfig () {
  return Axios
    .get(url)
    .then(response => {
      return response.data
    })
}


function saveurlToSessionStorage () {
  return fetchConfig().then(respons => {
    sessionStorage.setItem('URL_CONFIG', JSON.stringify(respons))
  })
}

export default saveurlToSessionStorage

Я вижу, что значения успешно устанавливаются в хранилище сеанса, но в другомкомпонента, когда я обращаюсь к нему через sessionstorage, его неопределенное значение .. Но если страница обновляется или при нажатии другой кнопки, значение работает нормально ... Я думаю, что это как-то связано с визуализацией данных Vue до завершения axios ...хороший способ решить это?В идеале я должен иметь возможность получать данные с сервера, сохранять в хранилище сеансов и получать доступ к ним в данных компонента ... Любые эксперты Vue plz

1 Ответ

1 голос
/ 09 июля 2019

Вы игнорируете обещание, возвращенное вашей функцией fetchConfig () (которая также возвращает обещание), поэтому ваш код просто выполняется немедленно:

saveConfigToSession().then(() => {
  new Vue({
    router,
    store,
    i18n,       
    render: (h) => h(App),
  }).$mount('#app')
})
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...