Reactjs 从react native中的方法定义返回按钮或自定义组件 状态={ isGetOnceButtonClicked:false } doAddItems(){ this.state.isGetOnceButtonClicked=true; } 钮扣{ 如果(!this.state.isGetOnceButtonClicked){ 报税表( this.doAddItems()} /> ) }否则{ 报税表( ) } } render(){ 返回( {this.buttonToggle()} }

Reactjs 从react native中的方法定义返回按钮或自定义组件 状态={ isGetOnceButtonClicked:false } doAddItems(){ this.state.isGetOnceButtonClicked=true; } 钮扣{ 如果(!this.state.isGetOnceButtonClicked){ 报税表( this.doAddItems()} /> ) }否则{ 报税表( ) } } render(){ 返回( {this.buttonToggle()} },reactjs,react-native,react-redux,Reactjs,React Native,React Redux,我不熟悉react native。我想动态显示组件。因此创建了一个方法,在该方法中,如果条件满足,则返回按钮,否则返回创建的自定义组件,但不幸的是,如果我们返回字符串,如“某物”,则显示错误,如“必须在组件内呈现文本字符串”然后它可以正常工作,但每当我们返回文本以外的内容时,它就会抛出错误。您能提供整个JS文件吗?您的格式代码、语法错误error@FreakyCoder感谢您的回复,但是没有语法错误,但是没有调用doAddItems()方法。如果我们将此方法替换为Alert。doAddItems

我不熟悉react native。我想动态显示组件。因此创建了一个方法,在该方法中,如果条件满足,则返回按钮,否则返回创建的自定义组件,但不幸的是,如果我们返回字符串,如“某物”,则显示错误,如“必须在组件内呈现文本字符串”然后它可以正常工作,但每当我们返回文本以外的内容时,它就会抛出错误。

您能提供整个JS文件吗?您的格式代码、语法错误error@FreakyCoder感谢您的回复,但是没有语法错误,但是没有调用doAddItems()方法。如果我们将此方法替换为Alert。doAddItems()方法方法很好。请告诉我如何解决这个问题。onPress={()=>this.doAddItems()}按这个按钮控件不会进入方法定义,但onPress={()=>Alert.Alert('here')}效果很好。@sash不需要你的doAddItem,因为Buttontogle(我在上面写过)除非您对DOADItems的意图是其他的,否则执行该作业。以前的DOADItems不会更新状态,因为更新状态仅在您使用setState函数时发生,因此如果使用buttonToggle,它应该可以正常工作
state = {
        isGetOnceButtonClicked: false
    }

doAddItems(){  

    this.state.isGetOnceButtonClicked= true;
}

buttonToggle(){

    if(!this.state.isGetOnceButtonClicked){
        return(                                
            <Button 
                type = "clear"
                title="Get Once"
                onPress={() => this.doAddItems()}
            />                        
        )
    }else{
        return(                                             
            <InputNumberSpinner></InputNumberSpinner>                
        )
    }

}


render() {   



    return(

    <ScrollView>

        <View > 
             { this.buttonToggle() }
        </View>

    </ScrollView>
}
<ScrollView>

    <View > 
         { this.state.isGetOnceButtonClicked ? <InputNumberSpinner /> : <Button 
            type = "clear"
            title="Get Once"
            onPress={() => this.doAddItems()}
        />     }
    </View>

</ScrollView>
buttonToggle(){
    this.setState({isGetOnceButtonClicked: !this.state.isGetOnceButtonClicked});
}