Javascript 如何在vanilla js类中使用redux?

Javascript 如何在vanilla js类中使用redux?,javascript,reactjs,class,redux,Javascript,Reactjs,Class,Redux,我有一个javascript类,而不是React组件,它充当服务来处理React应用程序中的逻辑层(api调用等)。它的方法都使用redux(useSelector或useDispatch),并且一切正常 然而,林特发疯了: 不能在类组件中调用React挂钩“useSelector” 该类如下所示: 导出类UserService实现ProjectService{ 私有用户服务:用户服务; 构造函数(依赖项:依赖项){ this.userService=dependencies.userServ

我有一个javascript类,而不是React组件,它充当服务来处理React应用程序中的逻辑层(api调用等)。它的方法都使用redux(useSelector或useDispatch),并且一切正常

然而,林特发疯了:

不能在类组件中调用React挂钩“useSelector”

该类如下所示:

导出类UserService实现ProjectService{
私有用户服务:用户服务;
构造函数(依赖项:依赖项){
this.userService=dependencies.userService;
}
公共updateUserProfile(id:字符串){
const dispatch=usedpatch();
返回(用户:用户)=>{
返回调度(Event.userManager(user));
};
}

}
要访问redux,它取决于您的上下文:

  • 在React功能组件中:使用React redux挂钩或连接
  • 在React类组件中:使用React redux connect
  • 在React类之外:使用:

您可以使用,但不确定为什么需要一个类,只需将userService放在useRef中。如何将此服务包装在ref中?
const service=useRef();useffect(()=>{service.current=newuserservice();},[])如果在第一次渲染时需要userService实例,则不在第一次渲染:
返回service.current?null:此解决方案看起来很有希望,但我有以下错误:“类型(reducers?:ReducerMapObject,extendedRootSaga?:Saga)上不存在属性'dispatch'=>store错误消息表明您正在对reducer调用dispatch。您应该对存储实例调用dispatch。您的存储实例是createStore返回的对象。
import { store } from "where you create and export your store";
store.dispatch({type: ... });
const events = store.getState().events;
store.subscribe(() => console.log("The store has been modified"));