Реагировать + Redux. Маршрут после отправки [Невозможно прочитать свойство then> неопределенного] - PullRequest
0 голосов
/ 30 августа 2018

в моем приложении React, после отправки действия я хочу перенаправить на домашнюю страницу.

index.js

const store = createStore(
  rootReducer,
  composeWithDevTools(applyMiddleware(thunk))
);
ReactDOM.render(
  <BrowserRouter>
    <Provider store={store}>
      <App />
    </Provider>
  </BrowserRouter>,
  document.getElementById("root")
);

мой компонент, от которого я хочу маршрутизировать.

class GameElements extends Component {
  cancel = () => {const { history, cancelGame: cancelGameAlt } = this.props;
    cancelGameAlt().then(() => history.push("/HomePage"));
  };

  render() {return( /*button that calls cancel*/);}

GameElements.propTypes = {
history: PropTypes.shape({
    push: PropTypes.func.isRequired
  }).isRequired}

и действие cancelGame определено как

export const cancelGame = () => dispatch => {
  dispatch({ type: types.PLAYER_CANCELS_GAME });
};

действие отправляется и состояние в магазине изменяется, но я в этой строке; cancelGameAlt().then(() => history.push("/HomePage")); получить ошибку Cannot read property 'then' of undefined

перед нажатием при отображении страницы я получаю Failed prop type: The prop историю is marked as required in GameElements , but its value is undefined . но я читал, что react-router 4 использует историю как опору вашего компонента.

Как мне маршрутизировать после вызова действия?

...