в моем приложении 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
использует историю как опору вашего компонента.
Как мне маршрутизировать после вызова действия?