Реактивный ящик с навигацией

У меня проблемы с ящиком и навигатором

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 при передаче ссылки на навигатор.

Ура:)

Другие вопросы по тегам