javascript - 如何使用 React 路由器手动触发路由?

标签 javascript reactjs react-router

正如标题所说,我有一张 table 。如果我点击一个 td,我想将用户转发到一个特定的 url。

现在我需要将一个对象传递给将要呈现的组件。

  • 如何将 props 动态传递给组件?
  • 如何手动触发路线?

我正在使用 React 0.14.6 和 react-router 1.0.3。

我的配置很简单:

<Provider store={store}>
    <Router>
      <Route path='/' component={App}>
        <IndexRoute component={SearchCustomer}/>
        <Route path='customerOverview/:props' component={CustomerOverview}/>
      </Route>
    </Router>
  </Provider>

customerOverview 需要在 props 被解析到 componentn 时触发 onClick。

最佳答案

可以从 this.props.route 访问传递的 props:

this.props.route.yourCustomProp

您可以使用普通的历史模块方法(如 push)通过 this.props.history 以编程方式转到新路线。和 replace :

this.props.history.push('/login')

如果您需要更深入地访问组件中的 history 属性,您可以使用 withRouter HOC.

对于 DOM 链接,请使用 Link根据文档。

请注意,此答案已针对 react-router v4 更新。旧版本的 react-router 使用旧的历史模块,它有 pushState and replaceState在上面。

关于javascript - 如何使用 React 路由器手动触发路由?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34997360/

相关文章:

javascript - 根据先前的单选选项禁用单选按钮

javascript - 在 Sails.Js 上使用 Chartist

javascript - Mapbox 自定义样式未正确显示

javascript - 使用登录流程处理权限敏感操作的 React/Flux 方式

react-router+antD/如何在按下后退/前进按钮时突出显示菜单项?

javascript - chrome.storage.sync.set 不保存数据

javascript - React 导入组件名称冲突

javascript - 注册表单上的 onClick 出现问题

javascript - Prop 中缺少位置(ReactJS)

react-native - TouchableOpacity onpress 不起作用 react native ListView