ReactNative踩坑日志——頁面跳轉之——Undefined is not an Object(evaluating this2.props.navigation.navigate)


頁面跳轉時,報  Undefined is not an Object(evaluating this2.props.navigation.navigate)

出錯原因:在一個頁面組件中調用了另一個組件,而跳轉動作在被調用組件中定義。則會出現:當前呈現頁面的this與跳轉動作發生的this不一致,導致跳轉動作不能被調用。

解決辦法:在當前呈現頁面獲取跳轉動作調用方法,作為參數傳遞給跳轉動作發生組件。

例如:

export default class PayFailedPage extends Component {
    render() {
        return (
            <View style={{flex:1}}>
                <View style={{flex:1}}>
               <PageTop navigate={this.props.navigation.navigate}/></View>               
            </View>
        );
    }
}

在跳轉動作發生組件中定義跳轉:

class PageTop extends Component{
    render(){
        return (
            <View>
                <View>
                    <Button onPress={()=>{
                        this.props.navigate('Index');
                    }}  style={{flex:1}} title="回到首頁"/>
                </View>
            </View>
        );
    }
}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM