reactjs - React useHistory:只能在函数组件的主体内部调用 Hooks
问题描述
import 'bootstrap/dist/css/bootstrap.min.css';
import React, {Component}from 'react';
import {BrowserRouter, Route, Link} from 'react-router-dom';
import './App.css';
import {Home} from './Home';
import {About} from './About';
import {List} from './List';
import {Button} from 'reactstrap';
const App = () => {
return(
<BrowserRouter className = 'App'>
<h1 className = 'App-header'>Welcome to To Do List</h1>
<div>
<ul>
<>
<Button outline color="secondary" size="sm" block><Link to='/' style={{color: 'black'}} >Home</Link></Button>{' '}
<Button outline color="info" size="sm" block><Link to='/about' style={{color: 'black'}} >How to use</Link></Button>
<Button outline color="success" size="sm" block><Link to='/friends'style={{color: 'black'}}>To do list</Link></Button>
</>
</ul>
<hr/>
<Route exact path = '/' component={Home} />
<Route path = '/about' component={About} />
<Route path = '/friends' component={List} />
</div>
</BrowserRouter>
)
}
export default App
我正在尝试使用'react-router'中的useHistory。但是,似乎我不断收到此错误。即使我试图在网上找到解决方案,我的错误似乎也不像“Breaking hooks rule”和任何其他错误。
有什么办法可以解决这个问题吗?
我也添加了我的 App.js
谢谢
import React from 'react';
import './App.css';
import { useHistory } from 'react-router';
import {Button} from 'reactstrap';
const List = () => {
const history = useHistory({});
const handleOnClickLogin = () => {
alert('login clicked');
history.push('/');
};
return(
<div className="list-component">
<h2>To do list</h2>
<Button color = "primary"
onClick={handleOnClickLogin}>
Add
</Button>
</div>
)
}
export default List;
解决方案
您正在从 react-router 导入 useHistory,但这是来自 react-router-dom 的函数,因此请尝试像
import { useHistory } from "react-router-dom";
当然,如果你的 package.json 文件中不存在这个包,你需要安装它。让我知道它是否有效。
推荐阅读
- python - 运行 Python 程序时出错:com_error: (-2147023174, 'RPC 服务器不可用。', None, None)
- python - 我在 python 中使用 tkinter 的一个非常简单的程序有问题
- python - Python 3 更好的方法来安排函数在到达特定时间时运行?
- sql - 排除重复记录
- android - expo build (IOS & android) 和 Expo 发布错误
- python - pandas 数据帧上布尔运算符的时间复杂度
- string - 如何将字符串(表示键值对)转换为 Map
- r - 如何将一个向量添加到另一个保持第一个向量常数的向量?
- r - 使用 ggplot2 (3.2.0) 更新 ggsave 给出错误:美学必须是长度 1 或与数据相同 (25)
- excel - 需要此代码一次将多行移动到新工作表