当前位置: 首页 > 知识库问答 >
问题:

React JS:以编程方式使用React路由器发送道具[重复]

浦修文
2023-03-14

这个问题试图解决的问题很简单:

“我可以通过编程将道具从一个场景发送到另一个场景吗?如果可以,如何发送?”

下面我提供了一组示例代码,希望有人能够一劳永逸地解决这个问题。

const Main = () => (
    <main>
        <Switch>
            <Route exact path='/Job' component={Job}/>
            <Route path='/Preview' component={Preview}/>
        </Switch>
    </main>

长话短说,一旦用户单击submit,该文件将接受输入和输出,此函数称为:

 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)
}

我将永远感激任何理解这个问题并能解释我的困境的人。

非常感谢。

共有2个答案

端木阳荣
2023-03-14

我强烈建议使用redux表单,因为它使用一个reducer来保存表单的状态。然后,在路由到所需组件后,您可以将该组件连接到表单状态,以获取所需的信息。它是一个功能强大的工具,可以帮助您管理表单的状态,听起来就像您需要的一样。

龙智
2023-03-14

下面是一个使用路由器的示例。它是一个高阶函数,返回连接路由器的子组件,以便您可以通过编程方式切换路由。

移动到答案,发送一个对象而不仅仅是一个字符串。您可以通过在名为state的对象中附加一个属性来指定要作为状态发送的数据,该属性将由要发送的数据组成。

import React from 'react';
import {withRouter} from 'react-router-dom';

class Test extends React.Component {
  _handleClick = () => {
    this.props.history.push({
      pathname: '/roster',
      state: {
        'hello': 'world',
      }
    });
  }
  render() {
    return (
      <button onClick={this._handleClick}>Go To Roster Programmatically</button>
    )
  }
}

export default withRouter(Test);

 类似资料:
  • 我想在单击登录页中的按钮后重定向到主页。但是,当我单击地址栏中的按钮时,主页的路径会显示出来(它重定向到主页)…但它不会呈现与该路径相关的组件。它仍然显示带有主页地址的登录页。因此,我必须刷新页面才能呈现主页。这里有什么问题??? 在我的登录页面中…这是我用于单击按钮的功能。。 在我的索引,js页面...

  • 我试图在一个容器中获取反应路由器的当前路径,这样我就可以将其传递给一个子组件,该组件将更改它的可见性过滤器。 更具体地说,我试图使导航菜单突出当前活动的页面。 我正在使用redux、redux、react-router和react-router-redux,这样我就可以从redux存储访问路由器状态。 从react-router-redux的docs中,它说要做这样的事情: 以下是我的容器组件:

  • 我可以从Firebase控制台向单个设备、主题和用户段发送通知。 我想向用户段发送推送通知。我搜索了很多,但我只得到脚本发送通知给单个用户或主题,而不是用户段。 我试过下面的代码 下面是我的回答

  • 我有一个模态,我想在其中放置一个动态嵌套视图。我认为这样做的一个好方法是像这样使用 我想把一些道具传给这些组件,就像我平时在React中一样 最终,我将移动到存储/获取状态中的这些属性,但是考虑到当前的实现,在定义开关

  • 问题内容: 在模块配置之后,例如在service中,有没有办法以编程方式将状态添加到$ stateProvider? 为了给这个问题增加更多的上下文,我有两种情况可以使用: 尝试强制在模块配置中定义的状态上重新加载,问题是状态将 reloadOnSearch 设置为 false ,所以当我尝试 $ state.go(’state.name’,{new:param},{reload:真正}); 什么