Отображенное состояние Vuex всегда неопределено в компоненте - PullRequest
0 голосов
/ 12 февраля 2020

У меня есть модуль хранилища Vuex с пространством имен, и я пытаюсь получить доступ к состоянию этого модуля в компоненте (через mapState), чтобы установить значение по умолчанию в моих данных. Тем не менее, «отображенное состояние» всегда не определено в моем компоненте.

Мой магазин:

cartDetail. js

export const defaults = {
  id: null,
  items: [],
},
const state = { ...defaults, };
export default {
  namespaced: true,
  state,
}

и в моем компоненте я have:

<script>
 import { mapState, mapActions, } from 'vuex';

 data() {
    defaultSelected: this.cartDetail.items[0],
 },

 computed () {
  ...mapState('cartDetail', ['cartDetail,'],),

  setDefaultSelected () {
   return this.cartDetail.items[0];
  },
 },

 created () {
    this.cartFetch(userId);
 }
</script>

Даже когда я console.log(this.cartDetail); либо в моем setDefaultSelected, либо в созданном хуке, он не определен! Любая помощь будет высоко ценится!

1 Ответ

0 голосов
/ 12 февраля 2020
  1. ваш раздел данных выглядит неправильно. Это должно выглядеть так:
data() {
    return {
      defaultSelected: this.items[0]
    }
 },

В mapState вы должны указать реквизиты состояния (и имя их модуля, если они не из состояния root). Я предполагаю, что carDetail. js является модулем магазина.
computed () {
  ...mapState({
     id: state => state.cartDetail.id,
     items: state => state.cartDetail.items
  }),

  setDefaultSelected () {
   return this.items[0];
  },
 },
...