小编Kim*_*sen的帖子

如何在组件外调用 GraphQL

我已经使用 Query 组件制作了一堆调用 GraphQL 的 React 组件,并且一切正常。

在一个组件中,我需要从数据库中获得一些初始数据,但没有任何可视化表示。

我曾尝试使用查询组件,但它似乎仅在渲染周期中触发。我尝试将其打包成一个函数,并在需要数据的组件中调用该函数。但是代码/查询没有执行,因为没有要显示的组件。

如何在没有组件的情况下从数据库中获取这些数据?

我找不到有关如何解决此问题的任何文档。但我不能是唯一一个这样做的人。

ApolloConsumer 或 ApolloProvider 是我问题的答案吗?

我正在处理会议和会议。会议持续几天,每天都有许多会议。

我想要实现的是每天渲染一个包含 X 个标签的页面。每个选项卡代表一天,并显示当天的会话数。

我的会话页面:

    import React from 'react';
import FullWidthTabs from '../components/Sessions';
import SessionTab from '../components/SessionTab';
import BwAppBar2 from '../components/BwAppBar2';
import ConferenceDays from '../components/ConferenceDays';


class SessionsPage extends React.Component {

    static async getInitialProps() {
        console.log("GetInitProps SessionsPage");
    }

    render() {
        let a = ConferenceDays();
        return (

                <div>
                    <BwAppBar2 />
                    {a}
                     <FullWidthTabs days={['2018-06-11', '2018-06-12', '2018-06-13']} day1={ < SessionTab conferenceId = "57" day = '2018-06-11' / > } …
Run Code Online (Sandbox Code Playgroud)

apollo reactjs graphql

11
推荐指数
2
解决办法
5293
查看次数

设置 GrapqQL 日期格式

我有一个 mongoDB 数据库,其中一个字段是 ISO 日期。当我使用 graphql(节点)查询查询表时,我可以正常接收我的对象,但是我在 graphql 中看到的日期格式是这种奇怪的格式:

"created": "Sun Nov 26 2017 00:55:35 GMT+0100 (CET)"
Run Code Online (Sandbox Code Playgroud)

如果我在解析器中写出该字段,则显示:

2017-11-25T23:55:35.116Z
Run Code Online (Sandbox Code Playgroud)

如何更改日期格式,以便在 graphiql 中显示 ISO 日期?

该字段只是在我的数据类型中声明为字符串。

编辑 我的简单类型定义为:

type MyString {
  _id: String
  myString: String
  created: String
}
Run Code Online (Sandbox Code Playgroud)

当我在创建的基础中插入一个值时,MongoDB 会自动设置。

当我运行查询时,它返回一个对象数组。在我的解析器(用于检查)中,我执行以下操作:

 getStrings: async (_, args) => {
        let myStrings = await MyString.find({});
        for (var i = 0; i < myStrings.length; i++) {
            console.log(myStrings[i]["created"]);
        }

    return myStrings;
}
Run Code Online (Sandbox Code Playgroud)

返回数组中的所有对象创建日期都具有以下形式:

2017-11-25T23:55:35.116Z
Run Code Online (Sandbox Code Playgroud)

但是当我在 GraphIql 中看到它时,它显示为:

"created": "Sun Nov 26 2017 00:55:35 GMT+0100 (CET)"
Run Code Online (Sandbox Code Playgroud)

我的问题是:为什么它会改变格式?

由于我的模型将其定义为字符串,因此不应对其进行操作,而应仅保留格式。但事实并非如此。这让我很困惑。 …

date mongodb node.js graphql

3
推荐指数
1
解决办法
2万
查看次数

标签 统计

graphql ×2

apollo ×1

date ×1

mongodb ×1

node.js ×1

reactjs ×1