我是Ract Native的新手,我正在尝试使用本机导航来构建一个小应用程序。
我可以在他们网站上提供的电影应用示例中看到(反应原生导航)他们没有在app.js中使用componentWillMount函数,但是他们有一个startApp()函数,在构造函数中调用。 / p>
我基本上是尝试在componentWillMounth函数中定义firebase配置,但是一个简单的控制台日志显示该函数以某种方式永远不会运行。
我想正确设置应用程序,以获得最佳性能,所以我想知道使用startApp函数是否基本相同,是否需要使用componentWillMount函数?
更新:以下代码
index.ios.js
import App from './src/app';
const app = new App();
app.js
import ...
class App extends Component {
state = {
loggedIn: null
}
constructor(props) {
super(props);
this.startApp();
}
componentWillMount() {
console.log('COMPONENT WILL MOUNT');
// Initialize Firebase
const config = {
...
...
};
firebase.initializeApp(config);
}
startApp() {
console.log('START APP');
// Initialize Firebase here???
const tabs = [
...
];
if (this.state.loggedIn) {
Navigation.startTabBasedApp({
tabs,
tabsStyle: {
...
}
});
} else {
Navigation.startSingleScreenApp({
...
});
}
} // startApp
}
export default App;
答案 0 :(得分:0)
您的componentWillMount没有被执行,因为您没有在React渲染生命周期中使用您的组件(您不是在render
中实例化它,而是使用new
实例化它,它只运行构造函数组件。将其移动到索引渲染方法,如下所示:
class EntryPoint extends React.Component {
render(){
<App />
}
}
AppRegistry.registerComponent('MyApp', ()=>EntryPoint);