Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/cmake/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
React router react路由器中继的子路由查询错误_React Router_Relayjs_React Router Relay - Fatal编程技术网

React router react路由器中继的子路由查询错误

React router react路由器中继的子路由查询错误,react-router,relayjs,react-router-relay,React Router,Relayjs,React Router Relay,我的部分路线是这样设置的: <Route path=":widgetId" component={Widget} queries={{ viewer: () => Relay.QL`query { viewer }`, widget: () => Relay.QL`query { widget(widgetId: $widgetId) }` }}> <Route path="details" component

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

<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>
对route
:widgetId
的查询是否有效?如果我将查看器从顶层管线中移除,则一切正常

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

export default Relay.createContainer(Details, {
    fragments: {
        widget: () => Relay.QL`
            fragment on Widget {
                id,
            }
        `
    }
});
编辑:以下是小部件片段:

export default Relay.createContainer(Details, {
    fragments: {
        widget: () => Relay.QL`
            fragment on Widget {
                id,
            }
        `
        viewer: () => Relay.QL`
            fragment on Viewer {
                id,
            }
        `
    }
});

注意:我使用的是同构中继路由器,看起来您需要向小部件类添加一个查看器片段,即:

export default Relay.createContainer(Widget, {
  fragments: {
    widget: () => Relay.QL`
      fragment on Widget {
        id,
      }
    `,
    viewer: () => Relay.QL`
      fragment on ObjectType {
        fields
      }
    `
  }
});

您是否在
小部件
中继容器中定义了片段
查看器
?@AhmadFerdous是的,片段查看器在我的小部件中继容器中。如果我取出路径为“详细信息”的路由,我不会被抛出错误。因此,我相信错误来自于查询的设置方式?
不变冲突:Relay(Details).getFragment()
@AhmadFerdous我已经添加了详细信息片段你最后运气好吗?我遇到了与react-router-relay几乎相同的问题。嘿@Jamie S,如果你查看上面的评论,你可以看到我的widget类中确实有查看器片段。这个错误还指出,
viewer
在细节分类中不是一个有效的片段名称。我在回答中犯了一个错误,我注意到这个错误也出现在您更新的问题中。不确定这是否是复制粘贴错误,但在小部件代码中使用了Details类。否则,我无法在您发布的代码中看到问题。这与我使用react路由器中继设置路由的方式几乎相同
export default Relay.createContainer(Widget, {
  fragments: {
    widget: () => Relay.QL`
      fragment on Widget {
        id,
      }
    `,
    viewer: () => Relay.QL`
      fragment on ObjectType {
        fields
      }
    `
  }
});