未为状态对象定义Vuex存储

时间:2020-03-09 10:49:54

标签: javascript vue.js vuex store

我在项目中使用vuex,在状态对象中,我想到达另一个状态对象。为此,我在商店中创建了一个吸气剂,但出现“商店未定义”错误。这是我的商店:

https://codesandbox.io/s/peaceful-gould-bvq2b这是沙箱。

const store = new Vuex.Store({
  state: {
    members: [],
    member: {},
    messages: [
      {
        id: Math.floor(Math.random() * 10000),
        owner: store.getters.getRandomMember,
        content: "Hello this is a test message",
        date: "06.03.2020 12:20"
      },
      {
        id: Math.floor(Math.random() * 10000),
        owner: store.getters.getRandomMember,
        content: "Hello this is the second message",
        createdDate: "06.03.2020 12:20"
      },
      {
        id: Math.floor(Math.random() * 10000),
        owner: store.getters.getRandomMember,
        content: "Hello this is the third message",
        createdDate: "06.03.2020 12:40"
      }
    ]
  },
  mutations: {
    SET_MEMBERS(state, membersData) {
      state.members = membersData;
    }
  },
  actions: {
    getMembers() {
      axios
        .get("https://api.github.com/orgs/github/public_members")
        .then(membersResult => {
          this.commit("SET_MEMBERS", membersResult.data);
        });
    }
  },
  getters: {
    getRandomMember: state => {
      return state.members[Math.floor(Math.random() * 30)];
    }
  },
  modules: {}
});

export default store;

1 个答案:

答案 0 :(得分:0)

沙箱告诉您代码有什么问题。您在定义“商店”之前就在使用它。我不确定您的实体结构,但是我会更改您的代码,因此它的功能类似于在添加消息时选择随机成员。成员一开始也是空的,所以无论如何都会选择null。

Problem description