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
}
`
}
});