代码之家  ›  专栏  ›  技术社区  ›  BorisTB

流式继电器的createFragmentContainer

  •  0
  • BorisTB  · 技术社区  · 6 年前

    我几乎不知道如何流式继电器的现代createFragmentContainer。

    我知道了:

    import { type RelayContext } from 'react-relay'
    
    type Props = {
      relay: RelayContext
    }
    

    relay

    组件导出方式如下:

    export default createFragmentContainer(
      Foo,
      graphql`
        fragment Foo_session on Session {
          foo {
            id
          }
        }
      `
    )
    

    当我在其他组件中使用此组件时(例如 <Foo session={session} /> ),我将得到以下错误:

    Flow: Cannot create 'Foo' element because property 'relay' is missing in props [1] but exists in 'Props' [2]

    1 回复  |  直到 6 年前
        1
  •  0
  •   denyzprahy    6 年前

    @鲍里斯你没有 relay 在片段容器上,只在父容器上,这是您将展开此查询的地方。在那里,你将拥有 继电器 道具和你的类型。

    Foo 组件,您可以键入传入的数据,这些数据将从父级传递。例如:

    export default createFragmentContainer(
      Foo,
      session: graphql`
        fragment Foo_session on Session {
          foo {
            id
          }
        }
      `
    )
    

    你有一个 __generated__ 具有已编译查询权限的文件夹?所以你可以:

    import type { Foo_session } from './__generated__/Foo_session.graphql';
    
    type Props = {
      session: Foo_session
    }
    

    希望有帮助:)。