Uncaught TypeError: (0 , react_router_dom__WEBPACK_IMPORTED_MODULE_2__.useHistory) 不是一个函数 (React.js)

25 浏览
0 Comments

Uncaught TypeError: (0 , react_router_dom__WEBPACK_IMPORTED_MODULE_2__.useHistory) 不是一个函数 (React.js)

这个问题已经在其他地方有了答案

使用React路由器进行编程式导航

我在使用 React Router版本6,然后运行下面的代码:

import { useHistory } from 'react-router-dom'
function Test() {
  const history = useHistory();
  history.push('/');
  history.replace('/');
  history.goBack();
}
Test();

但是我遇到了这个错误:

Uncaught TypeError: (0 ,

react_router_dom__WEBPACK_IMPORTED_MODULE_2__.useHistory)不是一个函数

我的代码有什么错误吗?

admin 更改状态以发布 2023年5月20日
0
0 Comments

对于React Router 版本 6,请使用\"useNavigate\"而不是React Router 版本 5中的\"useHistory\"。\n因此,将你的代码(React Router 版本 5)替换为:\n

import { useHistory } from 'react-router-dom'
function Test() {
  const history = useHistory();
  history.push('/');
  history.replace('/');
  history.goBack();
}
Test();

\n使用此代码(React Router 版本 6)替换:\n

import { useNavigate } from 'react-router-dom'
function Test() {
  const navigate = useNavigate();
  navigate('/');                    // Equivalent to "history.push('/');"
  navigate('/', { replace: true }); // Equivalent to "history.replace('/');"
  navigate(-1);                     // Equivalent to "history.goBack();"
}
Test();

0