【问题标题】:GraphQL transforming time field to numberGraphQL 将时间字段转换为数字
【发布时间】:2021-02-10 21:42:03
【问题描述】:

我在降价文件(在 netlify cms 中生成)中有如下内容:

我不确定 vs 代码中的语法高亮显示是否处理 startTimeendTime 的值,或者这是否与 markdown 本身或它在 netlify cms 中的创建方式有关。

但无论哪种方式,graphQL 似乎都将一个读取为数字,另一个读取为字符串:

我尝试在gatsby-node.js 中创建类型定义,如下所示,但是当我检查控制台输出时,我发现为时已晚,并且它被赋予了值 1200 和 1080 而不是 18:00 和 20:00

exports.createSchemaCustomization = ({ actions, schema }) => {
    const { createTypes } = actions
    const typeDefs = [
        schema.buildObjectType({
            name: 'MarkdownRemark',
            fields: {
                frontmatter: 'Frontmatter!'
            },
            interfaces: ['Node'],
            extensions: {
                infer: true,
            },
        }),
        schema.buildObjectType({
            name: 'Frontmatter',
            fields: {
                startTime: {
                    type: 'String!',
                    resolve(parent) {
                        console.log(parent.startTime);
                        return `${parent.startTime}`;
                    }
                },
                endTime: {
                    type: 'String!',
                    resolve(parent) {
                        console.log(parent.endTime);
                        return `${parent.endTime}`;
                    }
                }
            }
        }),
    ]
    createTypes(typeDefs)
}

有什么方法可以在 Netlify 的 config.yml 中指定不将此字段视为数字?还是我找错地方了?

这就是我在 config.yml 中声明字段的方式:

- { label: "Start Time", name: startTime, widget: string}
- { label: "End Time", name: endTime, widget: string}

但现在当我查看 github 时,我看到了一些非常奇怪的结果:

【问题讨论】:

    标签: reactjs graphql markdown gatsby netlify


    【解决方案1】:

    在您的 config.yml 中使用 Netlify 提供的 datetime widget and the format options

    - { name: startTime, label: "Start Time", widget: datetime, date_format: MM/DD/YYYY, time_format: false, format: L }
    - { name: endTime, label: "EndTime", widget: datetime, date_format: MM/DD/YYYY, time_format: false, format: L },
    

    将您的date_format(MM/DD/YYYY) 更改为任何所需的格式。

    请记住,Netlify datetime 小部件使用 momentjs,请检查其格式选项以获取适合您的格式。

    【讨论】:

      猜你喜欢
      • 2020-05-18
      • 2018-05-06
      • 2022-01-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多