我使用React Router导航到我的应用程序中的页面,如下所示:
在不使用Link的情况下渲染组件时,我会执行以下操作:
我试过像这样在params中传递myProp = {this.props.data}:
但它似乎不起作用,因为myProp在新页面上未定义,与pageId相反,我可以得到:
this.props.params.pageId;
我不应该能够通过Link传递非路由相关参数吗?
最佳答案
在链接documentation和源代码中,没有提到它采取参数.但是我得到了你想要做的事情.
我建议使用react-router的历史记录功能router.push(),而不是硬编码路由.做这样的事情:
class Foo extends React.Component {
...
const handleNewRoute = () => {
let { pageId } = this.props.data
let singleId = '1'
this.context.router.push({ // use push
pathname: `/single/${pageId}`,query: { singleId }
})
}
render() {
return (
顺便说一下,在React / JSX中,像…… {{singleId:1,myProp = {this.props.data}}} ……应该是< Link ... foobar = {{singleId:1,myProp:this.props.data}}>.前一种语法错了.