gpt4 book ai didi

javascript - 无法获取在react-router-relay 上使用的userID 路由参数

转载 作者:行者123 更新时间:2023-11-27 23:11:22 26 4
gpt4 key购买 nike

我正在尝试使用react-relay-router学习React Relay和GraphQL,但无法在我的工作 route 获取参数。我的困难在于“/Maps/:userID”路线。

这是我的路由器:

ReactDOM.render(
<RelayRouter history={browserHistory}>
<Route path="/"
component={HomeSubAppContainer}
renderLoading={() => <Spinner/>}
>
<IndexRoute component={WelcomePageContainer}/>
</Route>
<Route path="/Maps/:userID"
component={MapsSubAppContainer}
renderLoading={() => <Spinner/>}
queries={userRootQuery}
>
<IndexRoute
component={WeekMapContainer}
renderLoading={() => <Spinner/>}
/>
</Route>
</RelayRouter>,
document.getElementById('root')
);

这是我的中继容器和根查询:

 export const MapsSubAppContainer = Relay.createContainer(MapsSubApp, {
fragments: {
user: () => Relay.QL
` fragment on User {
birthDate
}
`
}
});

export const userRootQuery = {
user: () => Relay.QL
` query {
user(userID: $userID)
}
`
};

这是我的 React 组件中在路由参数中插入用户 ID 的位置。我正在使用react-router 中的browserHistory。 “1”是我的测试用户ID。

handleSubAppsNavClick(button) {
const path = button === 'Maps' ? '/Maps/1' : '/' + button;
browserHistory.push(path);
}

这是我的架构的根查询:

var queryType = new GraphQLObjectType({
name: 'Query',
fields: () => ({
node: nodeField,
user: {
type: userType,
args: {
userID: {type: GraphQLString}
},
resolve: (args) => getUser(args.userID)
}
})
});

我尝试按照react-router-relay Github页面上的示例代码进行操作,但收到控制台错误:

Warning: [react-router] Location "/Maps" did not match any routes

感谢您提供的任何建议。

最佳答案

您的代码中存在某种错误,导致它尝试导航到您尚未设置路线的 /Maps。仔细检查您如何进行转换。

关于javascript - 无法获取在react-router-relay 上使用的userID 路由参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36162658/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com