【发布时间】:2020-10-27 11:49:44
【问题描述】:
我需要一些关于 reactjs Routes 以及如何正确显示它们的指导。
所以我的 react 目录如下(我将省略不必要的目录和文件)
Routes.js
App.js
src/
ComponentOne.jsx
ComponentTwo.jsx
我的现任Routes.js 长这样
import ComponentOne from './src/ComponentOne'
import ComponentTwo from './src/ComponentTwo'
<Route path='/banuka/' exact component={ComponentOne} />
<Route path='/banuka/test' exact component={ComponentTwo} />
而在ComponentOne.jsx 中,除了一个包裹在Link 或react-router-dom 中的按钮外,什么都没有
let valueobject = {<some-key-value-pairs>} // take a note on this line
<Link to={`/banuka/test`}>
<Button variant="dark">
Upload Data
</Button>
</Link>
所以当我点击这个Button 时,它会导航我两个ComponentTwo 组件。
这就是问题所在:
我想将变量 valueobject 传递给 props 从 ComponentOne 到 ComponentTwo
但如您所见,ComponentTwo 已经在 Routes.js 中呈现
我怎样才能做到这一点?
你可以建议我一个更好的方法(即使这意味着我必须删除Routes.js,但如果我能保持原样更好)来实现这一点,所以它看起来像:
<ComponentTwo values={valueobject}/>
谢谢!
【问题讨论】:
-
我看到了三个,在我看来实现这一点的首选方法:1.)使用全局状态管理,如 Redux、MobX 等,并让组件 2 从存储中获取数据。 2.) 尝试通过 url 表示状态。这意味着路线将是这样的:
/banuka/test/:someId/:someMoreInfo,您将根据按下按钮重定向到:/banuka/test/42/bananas,已经提供了这样的解决方案:3.) stackoverflow.com/a/48949836/3977134 -
看看使用Link发送一些路由状态:reactrouter.com/web/api/Link/to-object
-
@r3dst0rm 我喜欢你的方法,但我怎样才能用查询参数发送这样的数据对象?
标签: reactjs