Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
React native 在react导航标题中使用时,react本机弹出对话框无法关闭_React Native_React Navigation_React Native Popup Dialog - Fatal编程技术网

React native 在react导航标题中使用时,react本机弹出对话框无法关闭

React native 在react导航标题中使用时,react本机弹出对话框无法关闭,react-native,react-navigation,react-native-popup-dialog,React Native,React Navigation,React Native Popup Dialog,我在我的RN项目中使用“react native popup dialog”和“react navigation”。我想在标题上添加一个用于搜索的按钮。单击按钮打开一个对话框,其中包含要搜索的输入字段 在“react native popup dialog”中,我需要调用show()方法来显示popUpDialog this.popUpDialogForSearch.show(); 在“react navigation”中,我需要为“react navigation”设计的静态区域中的按钮设置

我在我的RN项目中使用“react native popup dialog”和“react navigation”。我想在标题上添加一个用于搜索的按钮。单击按钮打开一个对话框,其中包含要搜索的输入字段

在“react native popup dialog”中,我需要调用show()方法来显示popUpDialog

this.popUpDialogForSearch.show();
在“react navigation”中,我需要为“react navigation”设计的静态区域中的按钮设置onPress方法

constructor(props) {
    super(props);
    this.state = {
        dialogVisible: false,
    };
}

static navigationOptions = ({ navigation }) => {
    return {
        header: <Header hasSegment>
            <Left>
                <Button transparent onPress={() => navigation.navigate("Home")}>
                    <Icon name="ios-arrow-back" style={styles.icon}/>
                </Button>
            </Left>

            <Body style={{ flex: 1.45 }}>
            <Segment style={styles.segmentStyle}>
                <Button style={styles.leftRoundBorder} first><Text>查看待办列表</Text></Button>
                <Button onPress={() => { navigation.navigate("AddNormalStoreIn"); }} ><Text>添加一般入库单</Text></Button>
                <Button onPress={() => { navigation.navigate("AddConstructionStoreIn"); }} style={styles.rightRoundBorder} last><Text>添加施工入库单</Text></Button>
            </Segment>
            </Body>

            <Right style={styles.iconPosition}>
                <Button transparent>
                    <Icon name="search" onPress={ navigation.getParam("popUpDialog") } style={styles.icon}/>
                </Button>
            </Right>
        </Header>,
    };
};

componentDidMount() {
    this.props.navigation.setParams({ popUpDialog: this._searchPopUpDialog });
    this.fetchFindStoreIn();
}

componentDidUpdate() {
    if (this.state.dialogVisible) {
        this.popUpDialogForSearch.show();
    }
}

_searchPopUpDialog = () => {
    this.setState({ dialogVisible: true });
};
....
<PopupDialog
    ref={ (popUpDialog) => this.popUpDialogForSearch = popUpDialog }
    onDismissed={ () => this.setState({ dialogVisible: false }) }
    width={0.7}
    height={0.7}
    containerStyle={{
        // TODO: dynamic height
        marginTop: -50,
    }}
    dialogTitle={
    <DialogTitle
        title="入库单搜索"
        haveTitleBar={false}
    />
}>
    { <SearchForm /> }
</PopupDialog>
构造函数(道具){
超级(道具);
此.state={
dialogVisible:false,
};
}
静态导航选项=({navigation})=>{
返回{
标题:
导航。导航(“主页”)}>
查看待办列表
{navigation.navigate(“AddNormalStoreIn”);}>添加一般入库单
{navigation.navigate(“AddConstructionStoreIn”);}}style={styles.rightRoundBorder}last>添加施工入库单
,
};
};
componentDidMount(){
this.props.navigation.setParams({popUpDialog:this.\u searchPopUpDialog});
this.fetchFindStoreIn();
}
componentDidUpdate(){
if(this.state.dialogVisible){
this.popUpDialogForSearch.show();
}
}
_searchPopUpDialog=()=>{
this.setState({dialogVisible:true});
};
....
this.popUpDialogForSearch=popUpDialog}
onDismissed={()=>this.setState({dialogVisible:false})
宽度={0.7}
高度={0.7}
集装箱运输方式={{
//TODO:动态高度
马金托普:-50,
}}
对话标题={
}>
{  }
现在,我的代码无法按预期关闭对话框,如果一个对话框没有关闭,其他页面中的另一个对话框将无法打开

这让我有一段时间感到紧张和困惑


有没有在静态区域调用实例方法的建议?谢谢。

我发现当我触发“远程调试JS”模式时,问题就会出现

一旦我禁用此模式,弹出对话框可以关闭

我现在真的不知道根本原因,我会跟踪的

谢谢