Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/434.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript React Native-navigationState.children[3].键;第二幕;与另一个孩子发生冲突_Javascript_Reactjs_React Native_React Router_React Native Router Flux - Fatal编程技术网

Javascript React Native-navigationState.children[3].键;第二幕;与另一个孩子发生冲突

Javascript React Native-navigationState.children[3].键;第二幕;与另一个孩子发生冲突,javascript,reactjs,react-native,react-router,react-native-router-flux,Javascript,Reactjs,React Native,React Router,React Native Router Flux,我们的react本机应用程序中的当前导航存在问题。我们使用模块 我们的路由器结构如下所示: <Router createReducer={this.reducerCreate.bind(this)} getSceneStyle={getSceneStyle}> <Scene key="root" hideNavBar={true}> <Scene key={PROFILE_TABBAR} hideNavBar={true}>

我们的react本机应用程序中的当前导航存在问题。我们使用模块

我们的路由器结构如下所示:

<Router createReducer={this.reducerCreate.bind(this)} getSceneStyle={getSceneStyle}>
    <Scene key="root" hideNavBar={true}>
        <Scene key={PROFILE_TABBAR} hideNavBar={true}>
            <Scene key={PROFILE} hideNavBar={true} component={ProfileContainer}/>
            <Scene key={PROFILE_PASSWORD} hideNavBar={true} component={PasswordContainer}/>
        </Scene>    
        <Scene key="tabbar" hideNavBar={true} component={TabBar} initial={true}>
            <Scene key="tabbar_inner" tabs={true} hideNavBar={true}>
                <Scene key={TAB_1} component={Tab1Container} number={1} title={TAB_1} hideNavBar={true}/>
                <Scene key={TAB_2} component={Tab2Container} number={2} title={TAB_2} hideNavBar={true} />
                <Scene key={TAB_3}  component={Tab3Container} number={3} title={TAB_3} hideNavBar={true} />
            </Scene>                           
        </Scene>
    </Scene>
</Router>
import {Actions, DefaultRenderer} from 'react-native-router-flux';

import TabBar from './bar';

..

export default class extends Component {

    render(){

        const children = this.props.navigationState.children;
        const state = children[0];

        return (
            <View style={styles.container}>            
              <DefaultRenderer
                navigationState={state}
                key={state.key}
                {...state}
                onNavigate={this.props.onNavigate}
              />
              <TabBar />
            </View>
        );

    }

}
如果我点击profile按钮,它只在第一次工作。当我返回并再次单击profile(配置文件)按钮时,我发现错误:

navigationState.children[3]。键“场景\u 2\u配置文件\u选项卡”与另一个子项冲突

代码怎么了?我的行为有错误吗?我还可以如何构造代码?

试试以下方法:

Actions.pop()
   setTimeout(()=>{
   Actions[PROFILE_TABBAR]()
})

尝试将
type={ActionConst.RESET}
添加到顶级场景,如下所示:

<Router createReducer={this.reducerCreate.bind(this)} getSceneStyle={getSceneStyle}>
<Scene key="root" hideNavBar={true}>
    <Scene key={PROFILE_TABBAR} hideNavBar={true}  type={ActionConst.RESET}>
        <Scene key={PROFILE} hideNavBar={true} component={ProfileContainer}/>
        <Scene key={PROFILE_PASSWORD} hideNavBar={true} component={PasswordContainer}/>
    </Scene>    
    <Scene key="tabbar" hideNavBar={true} component={TabBar} initial={true}>
        <Scene key="tabbar_inner" tabs={true} hideNavBar={true}  type={ActionConst.RESET}>
            <Scene key={TAB_1} component={Tab1Container} number={1} title={TAB_1} hideNavBar={true}/>
            <Scene key={TAB_2} component={Tab2Container} number={2} title={TAB_2} hideNavBar={true} />
            <Scene key={TAB_3}  component={Tab3Container} number={3} title={TAB_3} hideNavBar={true} />
        </Scene>                           
    </Scene>
</Scene>

您可以在此处找到更多信息:

<Router createReducer={this.reducerCreate.bind(this)} getSceneStyle={getSceneStyle}>
<Scene key="root" hideNavBar={true}>
    <Scene key={PROFILE_TABBAR} hideNavBar={true}  type={ActionConst.RESET}>
        <Scene key={PROFILE} hideNavBar={true} component={ProfileContainer}/>
        <Scene key={PROFILE_PASSWORD} hideNavBar={true} component={PasswordContainer}/>
    </Scene>    
    <Scene key="tabbar" hideNavBar={true} component={TabBar} initial={true}>
        <Scene key="tabbar_inner" tabs={true} hideNavBar={true}  type={ActionConst.RESET}>
            <Scene key={TAB_1} component={Tab1Container} number={1} title={TAB_1} hideNavBar={true}/>
            <Scene key={TAB_2} component={Tab2Container} number={2} title={TAB_2} hideNavBar={true} />
            <Scene key={TAB_3}  component={Tab3Container} number={3} title={TAB_3} hideNavBar={true} />
        </Scene>                           
    </Scene>
</Scene>