Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/24.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 router flux中的场景_Javascript_Reactjs_React Native_React Native Router Flux - Fatal编程技术网

Javascript 为什么我们需要一个;根“;react native router flux中的场景

Javascript 为什么我们需要一个;根“;react native router flux中的场景,javascript,reactjs,react-native,react-native-router-flux,Javascript,Reactjs,React Native,React Native Router Flux,我正在为我的应用程序实现一个路由库,一个看起来非常好的是他们有很好的文档和实现,我只有一个问题 在所有示例中,场景都包装在根场景中,因此: <Scene key="root"> <Scene key="sceneOne" component={SceneOne} /> <Scene key="sceneOne" component={SceneTwo} /> </Scene> 我尝试过在没有根场景的情况下使用它,但它仍然可以正常工作:

我正在为我的应用程序实现一个路由库,一个看起来非常好的是他们有很好的文档和实现,我只有一个问题

在所有示例中,场景都包装在根场景中,因此:

<Scene key="root">
  <Scene key="sceneOne" component={SceneOne} />
  <Scene key="sceneOne" component={SceneTwo} />
</Scene>

我尝试过在没有根场景的情况下使用它,但它仍然可以正常工作:

<Scene key="sceneOne" component={SceneOne} />
<Scene key="sceneOne" component={SceneTwo} />


所以我的问题是,因为我目前不了解根元素的用途。

如果您只是通过将场景添加到
元素下来创建场景,那么您不一定需要根元素。例如,以下方法可行:

  render() {
    return <Router>
        <Scene key="login" component={Login} title="Login"/>
        <Scene key="register" component={Register} title="Register"/>
        <Scene key="home" component={Home}/>
    </Router>
  }

还有其他原因吗?可能还有其他几个好的原因,但这取决于具体情况。例如,拥有根元素的一个原因是为所有下划线子元素添加应该相同的道具,例如使用
navigationBarStyle
prop为导航栏设置一个通用样式。路由器中多场景的第一个解决方案不再有效。路由器应仅包含一个场景。
import {Actions, Scene, Router} from 'react-native-router-flux';

const scenes = Actions.create(
  <Scene key="root">
    <Scene key="login" component={Login} title="Login"/>
    <Scene key="register" component={Register} title="Register"/>
    <Scene key="home" component={Home}/>
  </Scene>
);

/* ... */

class App extends React.Component {
  render() {
    return <Router scenes={scenes}/>
  }
}