我有一个模块,它不是React组件(我们称其为A),但是它的变量由react显示。现在,A必须调用App.js的forceUpdate函数。但我不想在创建A的新对象时始终将App.js作为属性传递。
我创建了以下内容:
App.js:
let forceUpdateCaller;
export default class App extends React.Component {
static forceUpdate = () => {
if (forceUpdateCaller) {
forceUpdateCaller();
}
}
forceUpdateCaller = () => {
this.forceUpdate();
}
constructor(props) {
super(props);
forceUpdateCaller = this.forceUpdateCaller;
}
...
}
A:
import App from "../App";
export default class A extends ...{
constructor() {
super();
}
updateContent = () => {
...
App.forceUpdate();
}
}
但是我敢肯定,有一种更好,更清洁的方法。你有什么想法吗?
答案 0 :(得分:0)
找到最好的方法:
export let ref;
class App extend React.Component{
constructor(props){
super(props);
ref = this;
}
}
现在,我在导入{ref}
时可以完全访问App对象。 :)