新的本机反应项目(版本0.61.1),正在通过基于标签的注册/登录设置开始使用wix导航(v ^ 2.27.9)来实现redux,直到通过身份验证后才确定了不同的导航布局。
我尝试了Navigation.setRoot()' and
Navigation.startTabBasedApp()。两者都抛出自己的错误。
我在app.js中的实现:
import {Component} from 'react';
import {Provider} from 'react-redux';
import {Navigation} from 'react-native-navigation';
import ReduxThunk from 'redux-thunk';
import {registerScreens} from './src/screens';
import configureStore from './src/store/configureStore';
const store = configureStore();
registerScreens(store, Provider);
class App extends Component {
constructor(props) {
super(props);
store.subscribe(this.onStoreUpdate.bind(this));
this.startApp();
}
onStoreUpdate() {
const {user} = store.getState().auth;
if (this.currentUser !== user) {
this.currentUser = user;
this.startApp(user);
}
}
startApp(user) {
console.log(user);
Navigation.events().registerAppLaunchedListener(() => {
switch (user) {
case !undefined:
Navigation.startSingleScreenApp({
screen: {
screen: 'Authenticated',
title: "You're authenticated",
navigatorStyle: {},
navigatorButtons: {}
},
});
break;
default:
Navigation.startTabBasedApp({
tabs: [
{
screen: 'Login',
label: 'Login',
},
{
screen: 'Register',
label: 'Register',
},
],
tabsStyle: {
intialTabIndex: 1,
},
});
}
});
}
}
export default App;
这是错误:
TypeError: undefined is not a function (near '..._reactNativeNavigation.Navigation.startTabBasedApp...')
如果我将startTabBasedApp与Navigation.setRoot()
交换,例如:
Navigation.setRoot({
root: {
bottomTabs: {
children: [
{
component: {
name: 'Login',
options: {
bottomTab: {
text: 'Login',
},
},
},
},
{
component: {
name: 'Register',
options: {
bottomTab: {
text: 'Register',
},
},
},
},
],
},
},
});
我收到此错误:
TypeError: concreteComponentProvider is not a function. (In 'concreteComponentProvider()', 'concreteComponentProvider' is an instance of Object)
我希望应用程序打开一个基于标签的应用程序,其中一个标签为“注册”屏幕,另一个标签为“登录”屏幕