我试图找出是否有可能从方法中获取 React 组件级别之外的上下文。作为下面的示例,我有一个模式,在激活模式和停用时,我想将提供者状态更改为某个值。
我真的不需要从渲染方法中访问该状态,而是我想通过传入上下文来从两个方法中更改上下文。有没有办法用上下文 api 处理这个问题?我可以从那里触发提供者操作,而不必将我的模态组件包装在 AppContext 中吗?
import React, { Component } from "react";
import "./Modal.module.css";
import AppContext from "../../context/Context";
class Modal extends Component {
constructor(props) {
super(props);
this.state = {
modalActive: false
};
}
activateModal = (context) => {
this.setState({ modalActive: true });
context.action.changeVal(2);
};
deactivateModal = (context) => {
this.setState({ modalActive: false });
context.action.changeVal(1);
};
render() {
return (
<React.Fragment>
<button onClick={this.activateModal} className="link">
click
</button>
<ModalContent />
</React.Fragment>
);
}
}