javascript - OnClick 事件处理程序重定向到reactjs 中?

标签 javascript reactjs

我正在阅读很多内容,并试图消化如何使用 withRouter 等进行重定向。但我在某个地方读到 onClick 页面应该重定向到指定的链接。另一件事是,在react-router最新版本中 history.push() 不起作用,那么如何将其与最新版本的react-router一起使用。我还阅读了有关堆栈溢出的问题,但它没有给出任何具体的解决方案。

这是一个基本的简单代码,但也无法进入官方文档。

如果我有一个表单,并且提交按钮页面应该重定向到一个链接,我尝试使用history.push(),但官方文档表明它不起作用。我怎样才能实现这一目标?

这里是代码:

import React,{Component} from "react";
import {BrowserRouter as Router, Link, Switch, Route} from "react-router-dom";
class App extends Component {
  constructor(props){
    super(props);

    this.state = {
      firstName:'',
    };
  }
  inputData = event => {
    this.setState({
      [event.target.name]:event.target.value
    });
  }

  render(){
    return(
      <div>
        <form>
          firstName
          <input type="text" name="firstName" onChange={this.inputData}/>
          <button type="submit" onClick={}></button>
        </form>
      </div>
    );
  }
}
export default App;

我应该在点击事件中写什么,它会将我重定向到新页面?

最佳答案

对于简单的答案,您可以使用react-router中的Link组件,而不是按钮。

<span className="input-group-btn">
  <Link to="/register" />Click to Register</Link>
</span>

如果你使用react-router v2.8.1,那么尝试实现路由器重定向。

import { Router } from 'react-router';

export default class Foo extends Component {

  static get contextTypes() {
    return {
      router: React.PropTypes.object.isRequired,
    };
  }

  handleClick() {
    this.context.router.push('/some-path');
  }
}

我希望上述两个选项可以解决您的问题。

关于javascript - OnClick 事件处理程序重定向到reactjs 中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49590556/

相关文章:

javascript - 从 React Native(android) 中的 .jar 文件访问方法

javascript - 如何设置鼠标悬停元素上时继续显示悬停效果?

javascript - 如何使用 .val() 将 var 设置为 true 或 false

javascript - ReactJS-单选按钮 "onClick"事件未触发

reactjs - 如何使用React + ES6 + webpack导入导出组件?

reactjs - 如何从 redux 状态中删除项目?

node.js - 获取当前语言 next-i18next

javascript - HTML 5 Canvas : remove color gradient from line edges

javascript - 创建一个json格式的对象

javascript - 类型错误 : Cannot find function findIndex in object