导航对本机的最佳实践是什么

时间:2019-04-03 07:06:39

标签: javascript react-native react-native-router-flux file-structure

我用react native开发了一个移动应用程序。我使用react-native-router-flux 和我的App.js这样。

import React, { Component } from "react";
import { Router, Scene } from "react-native-router-flux";
import A from './pages/A';
import B from './pages/B';
import C from './pages/C';
import D from './pages/D';
import E from './pages/E';
import F from './pages/F';
//... and if i add new page here add new import 

class App extends Component {

render(){
  return (
    <Router>
      <Scene key="root" >
      <Scene key="AA" component={A} ... Other properties /> 
      <Scene key="BB" component={B} ... Other properties /> 
      <Scene key="CC" component={C} ... Other properties /> 
      <Scene key="DD" component={D} ... Other properties /> 
      ... other scenes items here 
      </Scene>
    </Router>
  );

}
}
export default App;

我可以像下面的示例AllPagesImport.js

那样全部导入文件吗?
import B from './pages/B';
import C from './pages/C';
import D from './pages/D';
import E from './pages/E';
import F from './pages/F';

然后我再次在App.js

中调用此文件
import AllPagesImportfrom './AllPagesImport'

有可能还是有其他替代解决方案?

此外,我尝试在应用程序启动所有导入时都使用了渲染导入方法,但该方法不起作用

1 个答案:

答案 0 :(得分:0)

您可以在“页面”文件夹中创建用于导出模块的索引文件。

module.exports = { A: A, B: B}

对于懒惰(不推荐),您可以使用Object.keys(页面)来获取页面的密钥。

{Object.keys(Pages).map(key => {
    var Page = Pages[key];
    return <Page key={key} />;
})}

此处的示例:https://codesandbox.io/embed/rrrqw54n1o