在尝试使用react-native-navigation时,我一直遇到undefined is not an object (evaluating 'RCCManager.setRootController')
。
我尝试跟https://github.com/junedomingo/movieapp效仿,但是当它试图在Expo应用中加载项目时就打了这个。
我修改了由Expo生成的App.js,如下所示:
import HomeScreen from './screens/HomeScreen'
Navigation.registerComponent('screens.HomeScreen', () => HomeScreen)
class App extends React.Component {
constructor(props) {
super(props)
this.startApp()
}
startApp() {
Navigation.startTabBasedApp({
tabs: [
{
label: 'One',
screen: 'screens.HomeScreen',
title: 'Screen One'
},
]
})
}
}
const app = new App()
这有点让人失望,但我认为这些是必不可少的。我觉得我不会像世博会期待的那样把事情从世博会交给世博会。
知道如何在世博会上运行rnn吗?如果有一个我可以玩的例子回购,那就太好了。我相信我能在世博会之外工作,所以香草的例子可能无济于事。
答案 0 :(得分:1)
因为react-native-navigation具有本机依赖性并且需要您添加自定义本机代码,所以不能将它与包中的Expo一起使用。
一个选项是detach您的项目并使用这样的包。这有一个副作用,即失去一些世博会的财产。
另一个选项是(如果你不是太深入项目)使用react-native-cli创建一个新的应用程序并将代码移动到该项目。这具有无法使用expo api的副作用。
第三种选择是使用不依赖于本机代码的导航包。一些最受欢迎的选项是react-navigation和react-native-router-flux。