【问题标题】:I have a problem using rootGetters in Nuxt.js我在 Nuxt.js 中使用 rootGetters 时遇到问题
【发布时间】:2020-08-12 06:26:34
【问题描述】:

我认为这是 rootGetters 或数据类型的问题。

// sheet.js

// character = Object
// number = 100

export const getters = {
  getNumber: state => {
    return Number(state.character.number); // its return 100
  }
};

并调用 getNumber 到 preview.js。

// preview.js
export const state = () => ({
  dummy: 0
});


export const getters = {
  numberIs: (state, rootGetters) => {
    return Math.round(state.dummy + rootGetters["sheet/getNumber"]); // undefined
  }
};

和 numberIs 返回未定义。 我错过了什么?

【问题讨论】:

  • 为了清楚起见,您的虚拟状态与您的吸气剂中的状态不同。 (但你知道)

标签: vue.js vuex nuxt.js


【解决方案1】:

参数的顺序很重要。 Vuex getter 签名是(state, getters, rootState, rootGetters),所以目前你认为的rootGetters 实际上只是getters

https://vuex.vuejs.org/guide/modules.html#accessing-global-assets-in-namespaced-modules

这有点欺骗性,因为动作是如何在上下文对象中传递的,您可以在其中选择要使用的内容。在这里你必须使用 4 个参数来获取 rootGetters。 (或者从参数中解析出来)

  numberIs: (state, _whatever, _idontcare, rootGetters) => {
    return Math.round(state.dummy + rootGetters["sheet/getNumber"]); 
  }

【讨论】:

    猜你喜欢
    • 2020-12-23
    • 2021-11-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多