история или контекст .push() не работает из-за пустого объекта

Я не могу понять, почему мой console.log(this); дайте мне пустые объекты this.props, this.context, this.ref и this.history undefined...

Поэтому я пытаюсь перенаправить после нажатия на кнопку, но ничего не происходит.

Кроме того, я не знаю, как завершить историю проверки PropTypes без моего объекта.

Спасибо за помощь !

import React, { Component } from 'react';
import PropTypes from 'prop-types';

class myComponent extends Component {
  constructor(props) {
    super(props);
    this.state = {
      myParam: 1,
      myQuery: 2,
    };

    this.handleChange = this.handleChange.bind(this);
    this.goToPlayscanDashboard = this.goToPlayscanDashboard.bind(this);
  }

  handleChange(e) {
    this.setState({ [e.target.name]: e.target.value });
  }

  goToPlayscanDashboard = (e) => {
    e.preventDefault();
    console.log(this.history);
    // ERROR: this.props.history.push is not a function
    this.props.history.push(`params/${this.state.myParam}/?myQuery=${this.state.myQuery}`);
  };

  render() {
    return (
      <div>
        <form onSubmit={this.goToPlayscanDashboard}>
          <select
            id="myParam"
            name="myParam"
            value={this.state.myParam}
            onChange={this.handleChange}
          >
            <option value="0">0</option>
            <option value="1">1</option>
            <option value="2">2</option>
            <option value="3">3</option>
            <option value="4">4</option>
            <option value="5">5</option>
            <option value="6">6</option>
          </select>

          <input
            type="text"
            id="myQuery"
            name="myQuery"
            required
            pattern="^\d{1,3}$"
            value={this.state.myQuery}
            onChange={this.handleChange}
          />

          <button type="submit">Search</button>
        </form>
      </div>
    );
  }
}

myComponent.propTypes = {
  history: PropTypes.string,
};

myComponent.defaultProps = {
  history: '/',
};

export default myComponent;

person GuillaumeRZ    schedule 09.05.2018    source источник
comment
история: PropTypes.string ???   -  person Alex    schedule 09.05.2018
comment
выполнение `myComponent.defaultProps = { history: '/', };` делает ваш чек propType всегда проходящим, потому что вы передаете '/' в качестве реквизитов истории, если вы хотите проверить, проходит ли история маршрутизатора/браузера в истории, удалить defaultProps. плюс я уверен, что история - это массив, а не строка :-)   -  person Femi Oni    schedule 09.05.2018
comment
Я думаю, вам нужно показать код, добавляющий историю в этот компонент. не могу сказать отсюда, почему история не определена отсюда   -  person Femi Oni    schedule 09.05.2018