Программно вернуться на домашнюю страницу с React - PullRequest
2 голосов
/ 18 марта 2019

Я прочитал статьи о том, как это сделать, и выбрал метод 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 Ответ

5 голосов
/ 18 марта 2019

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);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...