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}/>
}
}