【发布时间】:2020-08-16 12:52:11
【问题描述】:
使用基于类的组件,我可以通过以下方式将状态传递给由 props 呈现的组件:
<Route path='/someroute' component={SomeComponent} someprop={someprop} />
但是,现在我正在使用反应钩子,我的状态定义为:
const [myProjects, setMyProjects] = useState([
{projectName: Some project, id: 1},
{projectName: Some project, id: 2},
]);
现在路线忽略了这个道具。我确实读过一些关于人们使用渲染而不是组件的东西。但是这花费的精力和代码量对我来说看起来太老套了还是太多了?我的意思是为了更好的代码引入了钩子。现在一个简单的 'someprop={someprop}' 必须被代码块替换?
我还阅读了一些关于路由器 v5 的一些新内容,但我找不到可靠且干净的方式来传递道具。
有人可以就这件事教育我吗?
提前感谢您的时间!
更新答案
如果您在谷歌搜索后来到这里,这里有一个带有解决方案的沙盒!这基于所选的解决方案/答案。其他观众也可能会查看此内容,以了解我面临的问题。也许有人有其他信息。我还在学习 React,天哪,这对我来说是一个很大的学习曲线哈哈
https://codesandbox.io/s/admiring-diffie-9kfgx?file=/src/App.js
【问题讨论】:
-
在 React 中传递 props 的工作方式仍然相同。
-
看起来不像,当我尝试将相同的道具传递给非路由组件时:没有错。当组件在 Route 包装器中时,它会被忽略。
标签: javascript reactjs react-router react-hooks router