React Context API:在JSX之外获取上下文(渲染)

时间:2018-04-20 16:52:59

标签: reactjs react-context

我试图找出是否可以从方法中获取React组件级别之外的上下文。作为一个例子,我有一个模态,在激活模态和停用时,我想将提供者状态更改为某个值。

我真的不需要在render方法中访问该状态,而是希望通过传入上下文来改变两种方法中的上下文。有没有办法用上下文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>
    );
  }
}

0 个答案:

没有答案