使用React以编程方式返回首页

时间:2019-03-18 08:37:37

标签: reactjs react-router

我已经阅读了有关如何执行此操作的文章,并选择了withRouter(({ history }) => history.push("/"));方法,但是下面的代码无法正常工作。我在做什么错了?

import React from "react";
import SearchBox from "./SearchBox";
import { withRouter } from "react-router-dom";

class SearchParams extends React.Component {
  handleSearchSubmit() {
    withRouter(({ history }) => history.push("/"));
  }
  render() {
    return (
      <div className="search-route">
        <SearchBox search={this.handleSearchSubmit} />
      </div>
    );
  }
}

export default SearchParams;

1 个答案:

答案 0 :(得分:4)

withRouter是一个较高阶的组件,它将一个组件作为第一个参数,并将其设为使该组件将history添加到其常规道具中。

导出时,您可以在组件上使用它,并从this.props.history访问历史记录。

class SearchParams extends React.Component {
  handleSearchSubmit = () => {
    this.props.history.push("/");
  };

  render() {
    return (
      <div className="search-route">
        <SearchBox search={this.handleSearchSubmit} />
      </div>
    );
  }
}

export default withRouter(SearchParams);