React Native Router Flux Freezing Without {type:re

2019-08-01 03:08发布

问题:

I'm using React Native Router Flux on my mobile app for routing.

Page structure is like;

Login.js Get user password and username validation and store user-token in AsyncStorage If app has user-token redirect user to MainPage.js

( redirection in ComponentWillMount() method )

MainPage.js Make API call to my back-end server for listing some data

DetailPage.js Make API call to my back-end server for some detailed data.

--

My Router structure;

<Roter>
    <Scene key="root">
        <Scene initial component={Login} key="login" />
        <Scene component={MainPage} key="mainpage" />
        <Scene component={DetailPage} key="detailpage" />
    </Scene>
</Router>

--

Problem is;

When I want to navigate from MainPage to DetailPage, I cannot use Actions.detailpage() without Actions.detailpage({type:"reset"})

If I try to use only Actions.detailpage() app is freezing on MainPage. But I console.log("this is detail page") I can see the output. Actually I can navigate with Actions.detailpage() but my DetailPage can not load to screen.

I have network calls. Does not navigation stack handle this heavy process?

If i use Actions.detailpage({type:"reset"}) , navigation history is missing. So I can not use back buttons on top navbar.

What I'm missing here?

Actions reset property: Clears the routing stack and pushes the scene into the first index. No transition will occur.

https://github.com/aksonov/react-native-router-flux/blob/master/docs/API.md#actions


Edit:

When I delete all my routing config and add two empty scene like PageA.js and PageB.js, still it is freezing when I try to jump from PageA to PageB

<Roter>
        <Scene key="root>
            <Scene initial component={PageA} key="page_a" />
            <Scene component={PageB} key="page_b" />
        </Scene>
    </Router>

Still I get same error. Something on my app blocking page rendering and Scene loading. How I inspect this issue?

Also my dependencies are;

"dependencies": {
    "@react-native-community/async-storage": "^1.4.2",
    "react": "16.8.3",
    "react-native": "0.59.8",
    "react-native-elements": "^1.1.0",
    "react-native-facebook-account-kit": "^1.1.0",
    "react-native-fbsdk": "^0.8.0",
    "react-native-iap": "^2.5.5",
    "react-native-router-flux": "^4.0.6",
    "react-native-vector-icons": "^6.5.0"
  },

回答1:

have you used Actions.push('scene key')? i'm having trouble moving to specific scene directly but this one might helps you. i thinking about using react navigation