我试图尽可能地模块化我的代码。如果在github或其他东西上分享我的App.js,我不想继续删除ID,我只是将它包含在一个单独的文件中,只是.gitignore它。 / p>
出于某种原因,我的应用程序真的不喜欢我这样做的方式,而且我很难解决它。知道我做错了吗?
这是我的App.js文件:
import firebase from 'firebase';
import {
apiKey,
authDomain,
databaseURL,
storageBucket,
messagingSenderId
} from './constants/Keys';
class App extends Component {
constructor(props) {
super(props);
this._navContext = initNavigationContext();
}
componentWillMount() {
const config = {
apiKey,
authDomain,
databaseURL,
storageBucket,
messagingSenderId
};
firebase.initializeApp(config);
}
render() {
return (
<Provider store={Store}>
<NavigationProvider context={this._navContext}>
<StackNavigation navigatorUID="root" id="root" initialRoute={Router.getRoute('auth')} />
</NavigationProvider>
</Provider>
);
}
}
export default App;
我在这里省略了其他的import语句。
这是我的Keys
文件:
const apiKey = '//////';
const authDomain = '//////';
const databaseURL = '//////';
const storageBucket = '//////';
const messagingSenderId = '//////';
const facebookAppID = '//////';
export default {
apiKey,
authDomain,
databaseURL,
storageBucket,
messagingSenderId,
facebookAppID
};
知道我在这里做错了吗?
答案 0 :(得分:1)
我认为您的问题是您正在尝试对默认导出进行解构,而ES6模块所做的是使用解构来进行命名导出。如果导入的值全部为undefined
,则可能就是这种情况。您可以执行以下操作:
export const apiKey = '//////';
export const authDomain = '//////';
export const databaseURL = '//////';
export const storageBucket = '//////';
export const messagingSenderId = '//////';
export const facebookAppID = '//////';
然后它应该有用。