Ошибка ReactNavigation - Невозможно прочитать свойство bind неопределенного - PullRequest
0 голосов
/ 17 декабря 2018
  • «реагировать-нативный»: «^ 0.57.0»,
  • «реагировать-навигация»: «^ 3.0.0»,
  • «реагировать-навигация-редуктор-helpers ":" ^ 2.0.7 ",
  • " Reaction-redux ":" ^ 5.0.6 ",
  • " redux ":" ^ 4.0.0 ",
  • "redux-thunk": "^ 2.3.0",
  • "reduxsauce": "0.7.0",
  • "response-native-жест-обработчик": "^1.0.9 ",

Обновление response-navigation до 3.0.0 в моем приложении React-Native.Я следовал официальным документам здесь React Navigation и установил все зависимости.

Однако не могу решить эту проблему.

AppNavigation.js

const PrimaryNav = createStackNavigator({
HomeScreen: {
screen: MainTabNav,
}, {
mode: 'modal',
headerMode: 'none',
initialRouteName: 'HomeScreen',
navigationOptions: {
headerStyle: styles.header,
},
});

export default createAppContainer(PrimaryNav);

ReduxNavigation.js

import AppNavigation from './AppNavigation';
import { reduxifyNavigator, createReactNavigationReduxMiddleware } from 
'react-navigation-redux-helpers';

createReactNavigationReduxMiddleware(
'root',
state => state.nav,
);

const ReduxAppNavigator = reduxifyNavigator(AppNavigation, 'root');

render() {
const { dispatch, nav } = this.props;    
  <ReduxAppNavigator state={nav} dispatch={dispatch} />
}
const mapStateToProps = state => ({ nav: state.nav });
export default connect(mapStateToProps)(ReduxNavigation);

navigation.js

import { Keyboard } from 'react-native';
import AppNavigation from '../navigation/AppNavigation';

export default (state, action) => {
Keyboard.dismiss();
const newState = AppNavigation.router.getStateForAction(action, state);
return newState || state;
};

CreateStore.js

import { createStore, applyMiddleware, compose } from 'redux';
import reduxThunkMiddleware from 'redux-thunk';
import { createReactNavigationReduxMiddleware } from 'react-navigation-redux- 
helpers';
import screenTrackingMiddleware from './screenTrackingMiddleware';

export default (rootReducer) => {
const middleware = [];
const enhancers = [];
const navigationMiddleware = createReactNavigationReduxMiddleware(
'root',
state => state.nav,
);

middleware.push(screenTrackingMiddleware);
middleware.push(navigationMiddleware);
middleware.push(reduxThunkMiddleware);
enhancers.push(applyMiddleware(...middleware));
const store = createStore(rootReducer, compose(...enhancers));
return {
 store,
 };
};

RootContainer.js

import ReduxNavigation from 'navigation/ReduxNavigation';

export default class RootContainer extends Component {
render() {
return (
  <View style={styles.applicationView}>
    <StatusBar barStyle="light-content" />        
       <ReduxNavigation />            
  </View>
);
}
}

enter image description here

Ответы [ 2 ]

0 голосов
/ 31 января 2019

Решил проблему, добавив этот плагин в файл .babelrc.

["@ babel / plugin-transform-flow-strip-types",]

0 голосов
/ 30 января 2019

Это происходит потому, что вы не связали react-native-gesture-handler

Просто введите react-native link в директории вашего проекта.
И снова запустите react-native run-android

...