首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >react-router-relay的子路由查询错误

react-router-relay的子路由查询错误
EN

Stack Overflow用户
提问于 2016-06-07 00:53:12
回答 1查看 429关注 0票数 3

我的部分路线是这样设置的:

代码语言:javascript
复制
<Route path=":widgetId" component={Widget} queries={{
    viewer: () => Relay.QL`query { viewer }`,
    widget: () => Relay.QL`query { widget(widgetId: $widgetId) }`
}}>
    <Route
        path="details"
        component={Details}
        queries={{ widget: () => Relay.QL`query { widget(widgetId: $widgetId) }` }}
    />
</Route>

但是,我得到以下错误:

代码语言:javascript
复制
Error:  Invariant Violation: Relay(Details).getFragment(): `viewer` is not a valid fragment name. Available fragments names: `widget``.

路由:widgetId的查询是否有效?如果我从顶级路由中删除查看器,一切都会正常工作。

编辑:以下是详细信息片段:

代码语言:javascript
复制
export default Relay.createContainer(Details, {
    fragments: {
        widget: () => Relay.QL`
            fragment on Widget {
                id,
            }
        `
    }
});

编辑:以下是Widget片段:

代码语言:javascript
复制
export default Relay.createContainer(Details, {
    fragments: {
        widget: () => Relay.QL`
            fragment on Widget {
                id,
            }
        `
        viewer: () => Relay.QL`
            fragment on Viewer {
                id,
            }
        `
    }
});

注意:我使用的是同构中继路由器

EN

回答 1

Stack Overflow用户

发布于 2016-06-08 20:00:03

看起来您需要向您的Widget类添加一个查看器片段,即:

代码语言:javascript
复制
export default Relay.createContainer(Widget, {
  fragments: {
    widget: () => Relay.QL`
      fragment on Widget {
        id,
      }
    `,
    viewer: () => Relay.QL`
      fragment on ObjectType {
        fields
      }
    `
  }
});
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37662913

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档