【发布时间】:2021-05-02 02:31:53
【问题描述】:
我遇到了一个使用 useDispatch 找不到的函数。假设我应该使用 react-redux,不幸的是,我的版本是 6.0.0,需要的是 7.0.0 及更高版本。我想探索 useDispatch 或相关的钩子来在函数组件中调度动作函数。鉴于我无法升级我的 react-redux 并仍然使用功能组件,我该怎么做?
我的替代方法是使用类组件,但同样,我希望在函数组件中看到这项工作。让我知道还需要什么其他细节。
这是我的代码。
import React, { useDispatch } from 'react';
import {
Tooltip,
IconButton,
Icon,
} from '@material-ui/core';
import { logout } from './auth/store/actions';
const QuickLogout = () => {
const dispatch = useDispatch();
const handleClick = () => {
dispatch(logout());
};
return (
<Tooltip title="Logout" placement="bottom">
<IconButton className="w-64 h-64" onClick={handleClick}>
<Icon>exit_to_app</Icon>
</IconButton>
</Tooltip>
);
};
export default QuickLogout;
这是编译时的错误。
TypeError: Object(...) is not a function
QuickLogout
webpack-internal:///.....onents/QuickLogout.js:18:75
编辑:我提到了探索 useDispatch 或相关的钩子,因为我无法升级。我觉得这是一个灰色的声明,因为我真的只是希望我的代码能够工作。这意味着,解决方案不仅限于 useDispatch 或其他钩子。因此,我选择了不使用 useDispatch 或 hooks 的答案,因为它很简单。为含糊的陈述道歉。我会注意提高我的写作技巧。
【问题讨论】:
标签: reactjs react-redux