我想有一个全局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被称为”)并更改状态,但未打开对话框。我想要打开对话框。任何提示表示赞赏!