Nuxt - target static: магазин пуст при начальной загрузке страницы
Данные, извлеченные асинхронно из магазина, нигде не могут быть найдены в производственном режиме на target: static, если я отправил запрос через ловушку fetch компонента или через ловушку asyncData страницы.
Вызываются хуки, и все, при генерации nuxt, я вижу, что он загружает нужные данные. Но каждый вызов сгенерированного затем состояния хранилища возвращает ноль. Не могут ли хуки fetch / asyncData заполнить магазин?Магазин только для клиентов? Разве вы не можете добавить туда ничего из сборки / генерации на стороне сервера? Я не нашел ничего подобного в документации. Есть даже несколько примеров вызова API из хуков выборки и несколько руководств по заполнению магазина оттуда ...
Я использую Nuxt 2.15.8, вот как выглядит мой код:
async fetch() {
await this.$store.dispatch("equipment/loadEquipment"); // gets called, loads the right data, doesn't keep it in the store...
},
fetchKey: "standard-equipment-list", // I even tried with and without that, not really understanding why I admit...
computed: {
...mapGetters("equipment", ["standard_equipment"]), // this works fine in dev mode. But returns null in components in production mode with target: static
}
}
А в магазине:
export const actions = {
async loadEquipment({ state, commit }) {
if (state.equipment.location_equipment && state.equipment.standard_equipment) {
if (debug) console.log("equipment already there.");
return state.equipment
}
if (promises.equipment) {
if (debug) console.log("equipment pending...");
return promises.equipment
}
let promise = axios.get(`${state.apiURL}/equipment/get.php`).then((response) => {
if (debug) console.log("Equipment fetched", response.data);
commit('SET_EQUIPMENT', response.data);
return response.data;
})
promises.equipment = promise;
return promise;
},
...
Это отлично работает в режиме разработки . Сразу после генерации все идет в ...
Помогите, что мне не хватает? T___T