我有React Native應用程序,當我需要返回時,我正在使用navigator.back()
。 但我注意到了這個問題。例如,如果我有三頁A,B,C和我以A開頭,那麼我去B,去C,然後回到B,現在如果我打電話給navigator.back()
,它會把我帶到頁面C,但我期望看到頁面A.如何使導航器正常工作?
有沒有人知道如何解決這個問題?
這裏是我的代碼示例:
import React, { Component } from 'react'
import {
StyleSheet,
View,
StatusBar,
Navigator
} from 'react-native'
...
_renderScene (route, navigator) {
switch (route.name) {
case RouteName.Home:
return <Home navigator={navigator} />
case RouteName.Library:
return <Library navigator={navigator} />
case RouteName.BookDetails:
return <Details navigator={navigator} book={route.passProps.book} />
default:
console.error('Encountered unexpected route: ' + route.name)
}
return <Home />
}
...
export class Library extends React.Component {
constructor (props) {
super(props)
}
render(){
return (
<View style={styles.library}>
<Header title={LocalizationService.translate('MyLibrary')} navigator={this.props.navigator} />
<ScrollView>
<Accordion
ref='accordion'
sections={this.state.sections}
initiallyActiveSection={0}
renderHeader={this._renderHeader}
renderContent={this._renderContent.bind(this)}
/>
</ScrollView>
</View>
)
}
}
export class Header extends Component {
constructor (props) {
super(props)
this.state = {
title: ''
}
this._onClose = this._onClose.bind(this)
}
_onClose() {
let { onClose, navigator } = this.props
if (onClose) {
onClose()
} else {
navigator && navigator.pop()
}
}
}
Header.propTypes = {
title: React.PropTypes.string,
navigator: React.PropTypes.object,
onClose: React.PropTypes.func
}
這聽起來不像正常的行爲。你確定你要*回到*而不是*轉發*到B嗎? – Quentin
當我從C到B我使用這種方法:_goBack(){ this.props.navigator.back() } – Dmitry
_renderScene(route,navigator){ switch(route.name){case RouteName。 bookDetails: return –
Dmitry