流类型中继的createFragmentContainer

时间:2018-11-13 11:12:34

标签: reactjs types flowtype relaymodern

我几乎不了解如何流式中继的现代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 个答案:

答案 0 :(得分:0)

@Boris您的片段容器上没有relay属性,只有父容器上有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 } 文件夹,其编译查询正确吗?因此,您可以:

awk 'NR==1 {
    for (i=2; i<=NF; ++i) {
        fnames[i] = gensub(/\x27/, "", "g", $i) 
        print $1, $i > fnames[i] ".txt"
    }
    next
}
{
    for (i=2; i<=NF; ++i)
        print $1, "\x27" $i "\x27" > fnames[i] ".txt"
}' myfile.txt

希望它会有所帮助:)。