Reactjs React JS:以编程方式使用React路由器发送道具
这个问题试图解决的问题很简单: “我可以通过编程将道具从一个场景发送到另一个场景吗?如果可以,如何发送?” 下面我提供了一组示例代码,希望有人能够一劳永逸地解决这个问题 App.js文件: Preview.js 我将永远感激任何理解这个问题并能解释我的困境的人 非常感谢。我强烈建议使用,因为它使用一个减缩器来保存表单的状态。然后,在路由到所需组件后,您可以将该组件连接到表单状态,以获取所需的信息。Reactjs React JS:以编程方式使用React路由器发送道具,reactjs,react-router,react-router-v4,react-router-dom,Reactjs,React Router,React Router V4,React Router Dom,这个问题试图解决的问题很简单: “我可以通过编程将道具从一个场景发送到另一个场景吗?如果可以,如何发送?” 下面我提供了一组示例代码,希望有人能够一劳永逸地解决这个问题 App.js文件: Preview.js 我将永远感激任何理解这个问题并能解释我的困境的人 非常感谢。我强烈建议使用,因为它使用一个减缩器来保存表单的状态。然后,在路由到所需组件后,您可以将该组件连接到表单状态,以获取所需的信息。 它是一个功能强大的工具,可以帮助您管理表单的状态,听起来就像您需要的一样。下面是一个使用路由器的示
它是一个功能强大的工具,可以帮助您管理表单的状态,听起来就像您需要的一样。下面是一个使用路由器的
示例。它是一个高阶函数,返回连接路由器的子组件,以便您可以通过编程方式切换路由
移动到答案,发送一个对象而不仅仅是一个字符串。您可以通过在名为state的对象中附加一个属性来指定要作为状态发送的数据,该属性将由要发送的数据组成
从“React”导入React;
从“react router dom”导入{withRouter};
类测试扩展了React.Component{
_handleClick=()=>{
这个。道具。历史。推({
路径名:'/花名册',
声明:{
“你好”:“世界”,
}
});
}
render(){
返回(
以编程方式转到花名册
)
}
}
使用路由器导出默认值(测试)代码>抱歉@gilad我在发布这篇文章时做了一些编辑,试图让它更清晰,我已经更新了代码,使其更能反映实际问题。这里的问题是,当我更改场景时,我不能随历史一起发送道具,我原以为这是一件容易的事情,但似乎找不到一种方法来正确地做任何我编辑的答案,希望它有帮助。我不熟悉Redux,所以我试图避免在这个项目中使用它。我开始认为,如果不使用redux,这是不可能做到的:'(无论如何,谢谢Gilad不确定这如何适用于手头的问题,这会进入我的Jobs.js文件吗?我将如何从preview.js文件访问道具?@JDorrian啊,我的代码沙盒没有保存,粘贴了错误的版本。请参见上面的示例。在roaster中,您将能够访问props.location.state
,您将发现{你好:'world'}
。非常感谢你,我已经尝试了几个小时,你让我很开心!@JDorrian没问题!很抱歉造成混乱:)
const Main = () => (
<main>
<Switch>
<Route exact path='/Job' component={Job}/>
<Route path='/Preview' component={Preview}/>
</Switch>
</main>
handleClick(){
//The state I wish to pass: this.state.propToPass
//my current implementation for moving to the correct scene:
this.props.history.push('/Preview')
}
constructor(props){
super(props)
//console.log(the prop that has been sent)
}