点击与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 router documentation中没有提及此内容

解决方案不合适,因为我仍然不想使用注销组件...

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)