Я пытаюсь реализовать статический метод, чтобы сделать мой код чище. Он работал нормально, пока я не попытался сделать это:
// Auth.js
import {useDispatch} from 'react-redux';
import {signOut} from './redux_actions';
export class Auth {
static signOut = () => {
const dispatch = useDispatch();
dispatch(signOut())
}
}
// Menu.js
import {Auth} from '../../auth'
...
...
<MenuItem onClick={() => {Auth.signOut()}}><ExitToAppIcon className="icon"></ExitToAppIcon><span>log out</span></MenuItem>
Однако я получаю сообщение об ошибке:
Invalid Hook call, You might have mismatching versions of React and React DOM.
You might be breaking the Rules of Hooks.
You might have more than one copy of React in the same app
Я действительно не знаю, что я делаю неправильно. Возможно, я до сих пор не понимаю архитектуру. Спасибо за вашу помощь!
РЕДАКТИРОВАТЬ:
в соответствии с принятым ответом, это сработало
import { myStore } from './index'
export default class Auth {
static signOut = () => {
myStore.dispatch(signOut())
}
}