无法通过全局引用打开react-native-material-dialog组件

时间:2019-06-11 20:54:02

标签: react-native dialog

我想有一个全局ModalWindow,可以从我的ReactNative应用程序中的任何位置访问,所以可以在App.js中访问。当我尝试从程序的其他位置设置状态时,不允许我这样做。

在类InfoModal的构造函数中,我分配要存储在全局变量内的对象指针。从那里,我可以修改状态的值,完成后将调用render方法,但是...即使状态为true,也不会打开模式。

class InfoModal extends React.Component{
  constructor(props){
    super(props);
    this.state = {
      is_open : true,
      is_loaded : true
    };
    global.INFO_MODAL = this;
  }

  close = () =>{
    console.log("Close");
    this.setState({
      is_open : false
    });
    this.forceUpdate();
  }

  open = () =>{
    console.log("Open");
    this.setState({
      is_open : true
    });
    this.forceUpdate();
  }

  render(){
    console.log(this.state.is_open);
    if(this.state.is_open){
      console.log("HIII i'm called");
      return(
        <MaterialDialog
          title = {"Slynluder"}
          visible = {true}
          onOk = { () => this.close()}
          onCancel = { () => this.close() } >
          <Text style={this.props.dialogText}>
            This is my content for the dialog
          </Text>
        </MaterialDialog>
       );
    }else{
      return null;
    }
  }
}

当我随后调用global.INFO_MODAL.open();时从程序的其他位置开始console.log(“ Open被称为”)并更改状态,但未打开对话框。我想要打开对话框。任何提示表示赞赏!

0 个答案:

没有答案