【发布时间】:2020-09-20 13:10:47
【问题描述】:
我的应用程序中有一个管理器类,它只是一个普通的 JS 类,它纯粹是合乎逻辑的,没有视图。我在我的几个组件中使用了它的一个实例。对于其中一项操作,我希望它可以更改基于 React 的应用程序中的路线。我知道我可以向每个组件返回一些东西,然后让组件进行路由,但我想知道是否有办法从我的非反应类中做到这一点。有没有办法传入历史对象并将新路由推送给它?
感谢您的帮助。
编辑:这更像是一个理论/方法问题,但例如: 经理类:
class MyManagerClass {
constructor() {
this.data = {...some internal data};
}
doSomething(param) {
if(this.data[param]) {
this.data[param]();
} else {
//here i'd like to change the route in my react app
}
}
}
组件:
import React, {useContext, useEffect, useRef, useState} from "react";
const MyComponent = props => {
const myManagerClass = new MyManagerClass();
useEffect(() => {
myManagerClass.doSomething('param');
}, [props.something]);
return (
<div>Component</div>
)
}
【问题讨论】:
-
请分享一些代码,以便人们更好地理解。
-
它更具理论性,但我添加了一个粗略的例子来说明我所问的问题。
标签: javascript reactjs react-router