reactjs - 以编程方式导航到不同的路线

标签 reactjs react-router react-redux react-router-v4 react-router-redux

我有一个用例,其中某个组件内有一个类似于 vanilla html select 的元素列表。我希望,当用户单击列表中的任何元素时,路线应该改变。我可以在定义路由时使用一些正则表达式,并通过使用 React 路由器、select 的 onValueChange 事件中的一些 API 方法来更改路由吗?

示例 根路径:/ 列表数据:猫、狗、大象

当有人点击 Cat 时,我希望他导航到/Cat,类似地/Dog、/Elephant。

最佳答案

经过一番讨论之后。弄清楚你想做什么。

您需要在react-router中定义一条新路由,您可以将其用于此历史记录更改..如下所示:

<Route exact path="/:name" component={SomeComponent} /> 

在您的组件中,您可以通过 this.props.params.name 访问此“名称”

您还可以在更新此路由之前调用一个操作来更新商店

<小时/>

注意:如果您继续使用 v2...您应该让您的操作返回一个 promise ,以便您可以在组件中链接事件。又名:

onChange={this.handleChange}

handleChange = (value) => { // assuming you have the value here.. it may be e is the function param and you get the value as e.target.value
    this.props.saveSelectedAnimal(value).then( () => {
        this.props.history.push("/"); 
    })
}

关于reactjs - 以编程方式导航到不同的路线,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46087377/

相关文章:

javascript - React - 将函数传递给子组件什么都不做

javascript - Highcharts w/React - 在 JSX 中找不到渲染 div

javascript - React Redux Persist 正在补水,但没有检索存储的数据,而是默认

javascript - #href 在 React 应用程序中无法使用 State & Scrollspy

javascript - 同时导入命名空间和子模块是否有缺点?例如。 `import React, { Component } from ...`

javascript - Material UI 抽屉中的按钮导航

javascript - react-router - 从嵌套路由器导航到父路由

javascript - 通过 React Router v5 处理多种语言的最佳方式是什么?

javascript - _react.default.memo 不是函数 | wrapWithConnect 问题

reactjs - 如何修复 '_react["default"].memo 不是函数。(在 React Native 中的 '_react["default"].memo(connectFunction)' 错误?