gpt4 book ai didi

reactjs - useHistory react-router-dom 无效钩子(Hook)调用

转载 作者:行者123 更新时间:2023-12-04 12:09:44 27 4
gpt4 key购买 nike

我正在尝试实现 useHistory Hook 来自 react-router-dom它似乎不起作用。抛出无效的钩子(Hook)调用
App.js

import React, { Component } from 'react';
<...>
import { Signup } from './Signup.js';
import { Login } from './Login.js';
import { Account } from './Account.js';
import { AuthProvider } from './contexts/AuthContext.js';
import { BrowserRouter as Router, Switch, Route } from 'react-router-dom';

class App extends Component {
<...>

render() {
return(
<>
<...>
<Router>
<AuthProvider>
<Switch>
<Route exact path="/" component={Signup} />
<Route path="/signup" component={Signup} />
<Route path="/login" component={Login} />
<Route path="/account" component={Account} />
</Switch>
</AuthProvider>
</Router>
</>
);
}
}

export default App;
Account.js
import React from 'react';
import { useHistory } from 'react-router-dom';

export const Account = () => {
const history = useHistory();
return(
<h1>Hello...</h1>
);
}
它在这一行抛出错误: const history = useHistory(); 错误:无效的 Hook 调用。钩子(Hook)只能在函数组件的主体内部调用。这可能是由于以下原因之一造成的:
<...>
最新的 React 版本,最新的 React Router 版本,如果有什么不同我也安装了 react-router-dom之后 create-react-app .链接和路由本身正常工作,没有任何问题。在这里找到了几个主题,但没有明确/有效的解决方案。谢谢你。

最佳答案

找到了一个解决方案:以前我直接从 macOS 终端安装了 react-router-dom,除了 useHistory 之外,一切正常,但是这次我直接从 VS code 的终端安装了 react-router-dom,现在似乎工作正常。希望这对遇到此问题的任何人都有帮助。

关于reactjs - useHistory react-router-dom 无效钩子(Hook)调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65528749/

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