需要反应本地模块

我被困在一个反应​​本地项目的问题。 我试图做一个普通的需求文件,我出口所有的模块。 之后,我想只需要我的“require.js”文件,以避免在每个文件中这样require('../../ ModuleName')的调用。

我有4个文件:

index.ios.js /app/home.js /app/MyView.js /app/require.js 

require.js:

 module.exports = { Home: require('./home'), MyView: require('./MyView') } 

在index.ios.js中(他的模块Home和MyView正在正确导入)

 'use strict'; var React = require('react-native'); var { AppRegistry, StyleSheet, Text, View, } = React; var { Home, MyView } = require('./app/require'); class Test_require extends React.Component { render() { return( <Home /> ); } } AppRegistry.registerComponent('Test_require', () => Test_require); 

Home.js(模块MyView没有得到重要的)

 'use strict'; var React = require('react-native'); var { View, Text } = React; var { MyView } = require('./require'); class Home extends React.Component { render() { console.log(MyView); return( <MyView /> ); } } module.exports = Home; 

在Home.js中,MyViewvariables是“未定义的”。 如果我想在模块中需要一个模块,该模块已经被导入到另一个文件中,那么该variables是未定义的。

你们有什么线索,为什么我可以这样做还是有更好的解决scheme,我的问题? 感谢您的任何线索

所以我张贴我自己的答案,以防其他人有同样的问题。

在这样的语法中,所需的文件正在同步加载。 所以如果组件的构build比需要文件快,这个问题就会发生。 或者在你需要时加载你的组件,或者使用像这样的es6导入语法(导入asynchronous加载):

 import React from 'react-native' 

干杯!

在您的文件头注释中添加@providesModule moduleName 。 你可以使用require('moduleName')在你的项目中的其他地方导入。
看到这个问题 。
顺便说一句,这样一个惊人的function怎么没有logging在任何地方?