У меня есть приложение 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, а не * вперед * в B? – Quentin
, когда я перейти от С к В Я использую этот метод: _goBack() { this.props.navigator.back() } – Dmitry
_renderScene (маршрут, навигатор) { переключатель (route.name) {случай RouteName. книгаПодробности: возврат <Подробнее навигатор = {навигатор} книга = {route.passProps.book} /> – Dmitry