gpt4 book ai didi

reactjs - react 路由器, Prop `history` 未定义

转载 作者:行者123 更新时间:2023-12-04 01:52:49 24 4
gpt4 key购买 nike

在我的 React 应用程序中,我使用的是 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,
};

取消游戏工作,它的 reducer 按它应该的方式操作状态

最佳答案

包你GameElementswithRouter hoc,将其包含在您的文件中

import { withRouter } from 'react-router'

现在在底部,您导出组件的位置执行此操作。
export default withRouter(Connect(GameElements));

您可以在 docs 中阅读更多信息.

关于reactjs - react 路由器, Prop `history` 未定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52109592/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com