reactjs - 单击 Link with React 时注销
问题描述
Link
我希望在用户单击而不单击注销时直接执行注销功能button
(2 个操作对 1 个操作)。
我有这个链接+这条路线:
<Link to="/logout">Logout</Link>
...
<Route path="/logout">
<Logout />
</Route>
注销组件:我真的需要一个组件来调用“单行”功能吗?
import React, { Component } from 'react'
import { logout } from './../../services/auth.service';
import { Redirect } from 'react-router-dom';
export default class Logout extends Component {
state = {
navigate: false
}
handleLogout() {
logout();
this.setState({
navigate: true
})
}
render() {
const { navigate } = this.state;
if (navigate) {
return <Redirect to="/login" push={true} />;
}
return <button onClick={() => this.handleLogout()}>LOGOUT</button>
}
}
我将所有 login()、register()、getData()、postData() 逻辑放在服务中,甚至 logout() 都放在 auth.service.js 中:
export function logout() {
localStorage.removeItem('user');
}
你知道我该怎么做这个“无按钮点击”退出快捷方式吗?
谢谢您的帮助。
[编辑]
单击带有此的链接时,似乎可以调用一个函数:
<Link to="/logout" onClick={() => this.logout()}>Logout</Link>
为什么React 路由器文档中没有提到这一点?
这个解决方案是不对的,因为我仍然不想使用注销组件......
解决方案
推荐阅读
- python - 将包含元组的 DataFrame 列转换为行
- evernote - SDK Evernote PHP - 仅在给定堆栈中搜索笔记
- flutter - 引发了另一个异常:“MyApp”类型不是“StatelessWidget”类型的子类型
- xcode - 无法在 Xcode 中为 iPhone 4s 模拟器构建 Flutter 应用程序
- python - 相对导入抛出 ValueError
- macos - 一种在 VS Code C# 中为#regions 着色的方法
- reactjs - 单击卡片,然后导航到反应中的卡片页面详细信息
- sql-server-2008 - 附加 mdf 文件时出现 SQL Server 版本错误
- pytorch - Pytorch DataLoader - 选择类 STL10 数据集
- ruby-on-rails - 基于主题创建视图的最佳方式