【发布时间】:2020-04-22 05:01:15
【问题描述】:
美好的一天,希望我没有打扰你们。
详情
我有这样的路径
localhost:3000/Project-1/todo-1
和这样的路由切换
<Route path='/:project/:todo' component={Todo} />
预期输出
当浏览器在示例路径中时,我期望 App.js 也可以使用 useParams 获取参数对象,但显示为空。我误用了钩子吗?谢谢你的回答。
其他细节
我确实使用了 useLocation 来返回类似路径的东西,但这不是我的目标,它应该是类似
params: {
project: 'Project-1',
todo: 'todo-1 '
}
使用 useParams 返回,以便于提取项目和待办事项值
【问题讨论】:
-
你能告诉我们你的
Todo组件吗? -
@technicallynick 美好的一天,我想这与 Todo 组件无关,但我仍然会展示它 screencast.com/t/qbDbM2UeAb7
-
我对你的说法感到困惑,即它与 Todo 无关。
useParams旨在从由<Route />呈现的组件中调用,就像在Todo组件中一样。你是说如果你console.log(params.project, params.todo),你的控制台什么都没有返回?如果是这样,那么我会说一个供我们查看的代码框将是下一步。我在您的Todo组件中没有发现任何问题。 -
useParams只能在您的Todo组件或其子树中工作,您正在从App.js尝试它,因此是undefined -
@technicallynick 请原谅我刚才提出的混淆
让您感到困惑,因为在 Todo 组件上 useParams 效果很好。
标签: reactjs parameters react-hooks react-router-dom