Реактивный ящик с навигацией
У меня проблемы с ящиком и навигатором
https://github.com/root-two/react-native-drawer
проблема в том, что когда я нажимаю любую кнопку на ящике с обратным вызовом, чтобы нажать другой вид, это происходит очень медленно, вот мой код
render() {
return <Navigator
ref={(nav) => { navigator = nav; }}
initialRoute={{name:'PlayingNow'}}
renderScene={this.renderScene}
configureScene={(route, routeStack) => ({
...route.sceneConfig || Navigator.SceneConfigs.PushFromRight,
gestures: route.gestures
})}
sceneStyle={{backgroundColor:'#F5FCFF'}}
/>
}
renderScene(route, navigator){
let Component = ROUTES[route.name];
return(
<Drawer
type="overlay"
content={<DrawerContent route={route} navigator={navigator}/>}
tapToClose={true}
panOpenMask={0.1}
openDrawerOffset={0.25} // 20% gap on the right side of drawer
panCloseMask={0.2}
closedDrawerOffset={0}
tweenHandler={(ratio) => ({
main: { opacity:(2-ratio)/2 }
})}
>
<Component route={route} navigator={navigator}/>
</Drawer>
)
}
я пытался переместить навигатор в ящик, но потерял ссылку на навигатор, и у меня это не сработало
2 ответа
Свяжите это с renderScene
renderScene={this.renderScene.bind(this)}
Вы можете вызвать функцию, которая возвращает функцию навигатора следующим образом:
getNav()
{
return this._navigator
}
// внутри визуализации
renderscene(route,navigator)
{
this._navigator = navigator
}
вызовите функцию getNav при передаче ссылки на навигатор.
Ура:)