【问题标题】:KeystoneJs virtual field cannot use a custom field typeKeystoneJs 虚拟字段不能使用自定义字段类型
【发布时间】:2021-07-05 01:45:22
【问题描述】:

我需要以只读形式显示一个 json/object,并且我为它编写了一个自定义字段类型,但是当我使用 virtual 将其转换为字符串以将其传递给自定义字段类型时。我将自定义类型放入 args 但它显示 Error: Unknown type "JsonViewer".

知道如何让它工作吗?

const { Virtual } = require("@keystonejs/fields");
const JsonViewer = require("@/components/fields/jsonViewer");

module.exports = {
  fields: {
    requestData: {
      type: Virtual,
      args: [{ name: "requestData", type: "JsonViewer" }],
      resolver: async (json) => {
        return JSON.stringify(json);
      },
    },
  }
}

【问题讨论】:

    标签: keystonejs


    【解决方案1】:

    如果为 graphql 生成的架构中不存在复杂类型详细信息,则必须提供它们。

    在你的情况下,你正在做JSON.stringify,你可以像这样使用String返回类型。顺便说一句,String 类型是默认返回类型,字符串类型不需要任何类型声明。

    keystone 虚拟字段中也没有args 选项。

    const { Virtual } = require("@keystonejs/fields");
    
    module.exports = {
      fields: {
        requestData: {
          type: Virtual,
          graphQLReturnType: `String`,
          resolver: async (json) => {
            return JSON.stringify(json);
          },
        },
      }
    }
    

    【讨论】:

      猜你喜欢
      • 2010-09-30
      • 2018-09-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-06-05
      • 2018-11-03
      • 2013-03-04
      • 1970-01-01
      相关资源
      最近更新 更多