Навигация с модальным окном и ящиком

Я использую response-native-router-flux для навигации в моем приложении, поддерживающем реакцию. У меня есть это в моем файле router.js -

render() {
    return (
        <Router navigationBarStyle={styles.navBar}
            titleStyle={styles.navBarTitle}
        >

            <Scene key="modal" component={Modal}>
                <Scene key="drawer" component={Drawer} open={false} type="replace">

                    <Scene key="home" component={Home} title="HOME" hideNavBar type="replace" />
                    <Scene key="myorder" component={MyOrder} title="MY ORDERS" type="replace" />
                    <Scene key="bookachef" component={BookAChef} title="BOOK A CHEF" type="replace" />
                    <Scene key="offers" component={Offers} title="OFFERS" type="replace" />
                    <Scene key="terms" component={Terms} title="TERMS & CONDITIONS" />
                    <Scene key="mywishlist" component={MyWishlist} title="WISHLIST" type="replace" />
                    <Scene key="myaddresses" component={MyAddresses} title="Addresses" type="replace" />
                    <Scene key="faq" component={FAQ} title="FAQ" type="replace" />
                    <Scene key="aboutus" component={AboutUs} title="About Us" type="replace" />

                </Scene>
                <Scene key="auth" initial>
                    <Scene key="login" panHandlers={null} component={Login} title="Login" hideNavBar={true} />
                    <Scene key="signup" panHandlers={null} component={SignUp} title="SignUp" hideNavBar={true} />
                    <Scene key="terms" panHandlers={null} component={Terms} title="TERMS & CONDITIONS" />
                </Scene>
                <Scene key="popUpImagePicker" panHandlers={null} component={PopUpImagePicker} title="PopUpImagePicker" hideNavBar={true} />
            </Scene>

        </Router>
    );
}  

Теперь, после входа в систему, я хочу иметь обычный поток, то есть открывать приложение с помощью ящика. Проблема в том, что я могу открыть "Главный" экран с помощью

Actions.drawer() .

Но я не могу открыть ящик даже Actions.refresh({key: "drawer", open: true}) или сдвинувшись с экрана. Что я делаю не так, не могу понять. Я использую "react-native-router-flux": "^3.41.0"


person Mayank Baiswar    schedule 19.07.2017    source источник


Ответы (1)


Чтобы перейти к домашней сцене после входа в систему, вы можете вызвать Actions.drawer(), но до того, как вы приземлитесь в какой-либо из сцен в drawer сцене, скольжение с экрана не будет работать, потому что ваш Drawer компонент не смонтирован на экрана пока нет.

Что касается невозможности выдвинуть ящик, попробуйте удалить type="replace" подпорки со сцены с ящиком.

Поскольку вызов Actions.refresh({ key: 'drawer', open: true }) не вызывает проблемы с компонентом выдвижного ящика, убедитесь, что в вашем Drawer компоненте вы устанавливаете open реквизиты, вы можете взглянуть на ящик v3 RNRF example, если вы забыли установить open реквизиты, ваш Actions.refresh обновит navigationState, но не сможет контролировать открытое / закрытое состояние компонента выдвижного ящика.

person dotcomXY    schedule 21.07.2017