在我的React App中,我正在使用react-router-dom,并且在触发功能后的某个组件中,我想路由到首页。 但是我得到了错误
The prop `history` is marked as required in `GameElements`, but its value is `undefined`.
in GameElements (created by Connect(GameElements))
当然还有在致电Uncaught TypeError: Cannot read property 'push' of undefined
这是我的index.js
ReactDOM.render(
<BrowserRouter>
<Provider store={store}>
<Route component={App} />
</Provider>
</BrowserRouter>,
document.getElementById("root")
);
我从首页进入了这样的组件
<Button color="blue" as={Link} to="/GameInit">
START GAME
</Button>
现在从GameInit
起,我想回到首页
cancel = () => {
const { history, cancelGame } = this.props;
cancelGame();
history.push("/HomePage");
};
GameElements.propTypes = {
cancelGame: PropTypes.func.isRequired,
history: PropTypes.shape({
push: PropTypes.func.isRequired
}).isRequired,
};
取消游戏正常工作,并且其减速器应按要求操纵状态
答案 0 :(得分:2)
GameElements
是withRouter
的临时文件,将其包含在您的文件中
import { withRouter } from 'react-router'
现在在底部导出组件的位置。
export default withRouter(Connect(GameElements));
您可以在docs中阅读更多内容。