我正在使用React路由Dom v6.因此,对于我的web应用程序,我在userAction中创建了一个称为logoutUser的Redux操作,在视图dashboard.jsx中,我添加了一个注销按钮,可以将我导航到主页('/').我的问题是,单击注销什么都不做,我的代码错了吗?

使用.JS:

export const logoutUser = (navigate) => {
    return () => {
        sessionService.deleteSession();
        sessionService.deleteUser();
        navigate('/');
    }
}

仪表板:

import {useNavigate} from 'react-router-dom'

const Dashboard = ({logoutUser}) => {
  const navigate = useNavigate();

  return (
    <div>
      <StyledButton bg={colors.red} to="#" onClick={()=>logoutUser(navigate)}>
        Logout
      </StyledButton>
    </div>
  );

推荐答案

logoutUser是返回函数,而不是执行所需的任务.您可以将其更改为:

export const logoutUser = (navigate) => {  
   sessionService.deleteSession();
   sessionService.deleteUser();
   navigate('/');
}

或者将onClick部分更改为以下代码,以便执行logoutUser返回的函数:

onClick={()=>logoutUser(navigate)()}

Javascript相关问答推荐

有什么(最佳)方法可以从模块中获取脚本模块的多姆元素吗?

使用续集和下拉栏显示模型属性

传递一个大对象以在Express布局中呈现

yarn安装一个本地npm包,以便本地包使用main项目的node_modules(ckeditor-duplicated-modules错误)

如何找出摆线表面上y与x相交的地方?

引用在HTMLAttributes<;HTMLDivElement>;中不可用

阿波罗返回的数据错误,但在网络判断器中是正确的

是否可以在Photoshop CC中zoom 路径项?

JS Animate()方法未按预期工作

为列表中的项目设置动画

如何在FiRestore中的事务中使用getCountFromServer

如何使用[ModelJSON,ArrayBuffer]调用tf.loadGraphModelSync

我的NavLink活动类在REACT-ROUTER-V6中出现问题

bootstrap S JS赢得了REACT中的函数/加载

为什么这个最小Angular 的Licial.dev设置不起作用?

扩散运算符未按预期工作,引发语法错误

在每次重新加载页面时更改指针光标

如何将值从后端传递到前端

带有JS模块模式的Rails的Importmap错误:";Net::ERR_ABORTED 404(未找到)&Quot;

如何在通过JavaScript添加图像后将其删除?