所以我正在为服务器端渲染的React应用程序中继。我正在尝试使用中继从graphql端点获取数据。

我有点喜欢this,使用fetchQuery通过中继编译器从已编译的graphql发出请求来获取数据。

例如

import { graphql, fetchQuery } from 'react-relay'

const query = graphql`
   query SomeQuery($id: ID) {
      author(id: $id) {
         name
         ...SomeFragment_authorData
      }
   }
`

const variables = { "id" : "1f" };

fetchQuery(env, query, variables)
   .then((jsonData) => { console.log(jsonData); })

当它完成运行时,它为我提供了一些此类对象:
{
  author: {
    __fragment: { ... }
    ...
  }
}

我假设将这些子组件包裹在createFragmentContainer()中,以获取实际数据。

由于我没有使用createFragmentContainer(),所以我不确定如何正确获取数据,是否有任何方法可以将上述响应转换为真实数据?
任何帮助,将不胜感激!

注意:

目前,这是我要获取的数据:env._network.fetch(query(), variables)。它正在工作,但是为了获得我提供给fetch对象的Network,我需要深入研究私有(private)变量似乎并不对。

最佳答案

您需要在片段传播中添加一个中继指令:...SomeFragment_authorData @relay(mask: false)

关于javascript - 中继现代-如何在没有fragmentContainer的情况下使用fetchQuery,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/44520038/

10-10 00:45