javascript - 接力现代,不提供 Prop

标签 javascript reactjs relayjs relaymodern

我正在正确地从我的服务器获取返回的数据,但我收到一个 prop not supplied 错误。

~ expected prop `query` to be supplied to `Relay(ContactsPage)`, but got `undefined`. 

随着以下。

import makeRouteConfig from 'found/lib/makeRouteConfig';
import Route from 'found/lib/Route';
import React from 'react';
import { graphql } from 'react-relay';

import ContactsPage from '../components/ContactsPage';

export default makeRouteConfig(
    <Route
      path="/contacts"
      Component={ContactsPage}
      prepareVariables={ (params) => ({
        ...params,
        count: 5,
        order: "title",
        postType: ['mp_contact'],
      })}
      query={graphql`
        query contacts_WPQuery_Query(
          $count: Int!
          $order: String!
          $cursor: String
          $categoryName: String
          $postType: [String]
        ) {
            ...ContactsPage_query
        }
      `}
    />
);

我可以看到数据是从服务器获取的。

server response

我还有其他组件遵循类似的工作模式:/ 这是 ContactsPage 组件

import React, { Component } from 'react'
import ContactsList from './ContactsList'
import { createFragmentContainer, graphql } from 'react-relay'

class ContactsPage extends Component {

  render() {
    const {query} = this.props
    return (
      <div>
        <ContactsList wp_query={query.wp_query} />
      </div>
    )
  }
}

export default createFragmentContainer(
  ContactsPage,
  {
    query: graphql`
      fragment ContactsPage_query on Query {
          wp_query {
            id
            ...ContactsList_wp_query
          }
      }
    `
  }
)

最佳答案

我能够通过像这样更改在查询 { } 下嵌套根查询来解决这个问题

query={graphql`
        query contacts_WPQuery_Query(
          $count: Int!
          $order: String!
          $cursor: String
          $categoryName: String
          $postType: [String]
        ) {
            query {
               ...ContactsPage_query
            }
        }
      `}

我需要更新我的 graphql 服务器以将查询节点嵌套一层深(我认为这在 Relay Modern 中不是必需的。但似乎是。也许这是 Found 路由库的约束。我不是当然。

关于javascript - 接力现代,不提供 Prop ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46289972/

相关文章:

reactjs - 将空 block 添加到 Draft.js 而不移动选择

javascript - 由于 id 冲突,Relay QueryRendererfragmentContainer 传递的 props 与服务器响应不同

reactjs - 中继片段传播不起作用

reactjs - Relay、Redux、Apollo 与 GraphQL 和 React-Native

javascript - 为什么函数返回的数据不在 react 中呈现?

javascript - 在Codeigniter中显示JQgrid中的动态数据

javascript - 带对象的 ImmutableJs

javascript - 在 React 中构建调查并尝试对呈现的问题实现约束时出错

javascript - 如何使用 JavaScript 匹配我所在窗口的当前 URL 中的字符串?

javascript - IE 出现 'focus' 事件问题