包装“Foo”的操作“FooQuery”需要一个变量,但在 react-apollo 中没有找到

Posted

技术标签:

【中文标题】包装“Foo”的操作“FooQuery”需要一个变量,但在 react-apollo 中没有找到【英文标题】:The operation 'FooQuery' wrapping 'Foo' is expecting a variable, but it was not found with react-apollo 【发布时间】:2018-12-18 06:22:03 【问题描述】:

我遇到了 react-apollo 的问题。甚至不在 Foo 类中调用查询:

包装“Foo”的“FooQuery”操作需要一个变量:“id”,但在传递给“Apollo(Foo)”的道具中找不到它

class Foo extends React.Component 
    render() 
        return <div />
    


const FOO_QUERY = gql`
    query FooQuery($id: ID!) 
        foo(id: $id) 
            bar
        
    
`

export default graphql(FOO_QUERY,  name: 'fooQuery' )(Foo)

【问题讨论】:

您不应该将变量 id 而不是 name 传递给查询吗? 这是一个允许配置道具名称的属性。所以我可以打电话:this.props.fooQuery 你是对的,我的错。你是如何使用这个组件的?您是否将 id 道具传递给它? 是的,但我认为问题在于您如何在应用程序的其余部分中使用此导出的组件,而不是您如何定义它。如果你在没有传入 id 属性的情况下使用组件,我想你会得到这个错误。 @Tholle 很有魅力,谢谢! 【参考方案1】:

您的组件看起来正确。问题不在于您如何定义它,而是您必须确保在您的应用中使用 id 组件时将其传递给您的 Foo 组件:

<Foo id="some_id" />

【讨论】:

以上是关于包装“Foo”的操作“FooQuery”需要一个变量,但在 react-apollo 中没有找到的主要内容,如果未能解决你的问题,请参考以下文章

如何正确混合 C++ 和 C

在具有包含数据帧的列表列的小标题中,如何使用自定义函数包装 mutate(foo = map2(...))?

泛型之逆变和协变总结

如何从另一个包装的对象返回 Cython 中的包装 C++ 对象?

使原始的Angular表单控件变脏[重复]

为静态库编译 SWIG Python 包装器?