Reagir o fluxo do roteador nativo: TypeError: undefined não é uma função (avaliando 'addListener')

Estou trabalhando em um aplicativo nativo de reação usando as principais dependências:

reagir nativoreagir o fluxo do roteador nativoreagir thunkexpo

Eu estava trabalhando usando este package.json:

"dependencies": {
    "expo": "23.0.4",
    "humps": "^2.0.0",
    "install": "^0.10.1",
    "lodash": "^4.17.4",
    "native-base": "^2.3.5",
    "react": "16.0.0",
    "react-native": "0.50.4",
    "react-native-extend-indicator": "^0.1.2",
    "react-native-keyboard-aware-scroll-view": "^0.4.2",
    "react-native-maps": "^0.19.0",
    "react-native-maps-directions": "^1.3.0",
    "react-native-modal-datetime-picker": "^4.13.0",
    "react-native-qrcode": "^0.2.6",
    "react-native-router-flux": "4.0.0-beta.24",
    "react-native-svg-uri": "^1.2.3",
    "react-native-swiper": "^1.5.13",
    "react-native-vector-icons": "^4.4.2",
    "react-navigation-redux-debouncer": "^0.0.2",
    "react-redux": "^5.0.6",
    "redux": "^3.7.2",
    "redux-logger": "^3.0.6",
    "redux-thunk": "^2.2.0",
    "swagger-client": "2.1.32"
  }

O aplicativo está usando expo, então eu instalo as dependências usando:

instalação de fios

e, em seguida, execute o aplicativo

yarn start --reset-cache

Eu estava funcionando bem desde que queria adicionar uma nova dependência, então removi a pasta node_modules e o arquivo yarn.lock, adicionei a nova dependência e execute a instalação do yarn novamente.

Depois disso, estou recebendo esse erro ao abrir o aplicativo:

TypeError: undefined não é uma função (avaliando 'addListener')

está relacionado à navegação de reação, mas estou usando o fluxo de roteador nativo de reação 4.0.0-beta.24 que usa a navegação de reação ^ 1.0.0-beta.19 internamente.

Recentemente, notei que as pessoas que usam a navegação de reação estão tendo alguns problemas com isso (https://github.com/react-navigation/react-navigation/issues/3416) mas usando a versão beta.28.

Se eu voltar para uma pasta node_modules anterior (da lixeira), meu aplicativo funcionará bem, então .. provavelmente o problema é que existe alguma dependência com o^ O símbolo do meu package.json não é mais compatível .. talvez afaste ou reaja o fluxo nativo do roteador com a minha versão nativa do react.

alguma ideia?

Aqui está a parte do código quando eu uso o middleware react thunk:

import {applyMiddleware, compose, createStore} from 'redux';
import thunkMiddleware from 'redux-thunk';
import {createLogger} from 'redux-logger';
import getRootReducer from "../reducers/index";
import navigationDebouncer from 'react-navigation-redux-debouncer';
import {restApi} from "../lib/restApi";

const loggerMiddleware = createLogger({ predicate: (getState, action) => __DEV__  });

export default function getStore(initialState) {
    const enhancer = compose(
        applyMiddleware(
            thunkMiddleware.withExtraArgument(restApi),
            navigationDebouncer(600),
            loggerMiddleware
        ),
    );
    return createStore(
        getRootReducer,
        initialState,
        enhancer
    );
}

e aqui está o aplicativo principal:

import React, {Component} from 'react';
import {Provider} from 'react-redux'
import getStore from './src/store/configureStore'
import {StatusBar} from 'react-native'
import AppNavigation from './src/navigation';

const Store = getStore();

export default class App extends Component {

    constructor(props) {
        super(props);
    }

    async componentWillMount() {
        await Expo.Font.loadAsync({
            'Ionicons': require('native-base/Fonts/Ionicons.ttf'),
        });
    }

    render() {
        StatusBar.setHidden(true);
        return (
            <Provider store={Store}>
                <AppNavigation/>
            </Provider>
        );
    }
}

EDIT: descobri que agora o react-native-router-flux usa a 1.0.0 react-navigation (a nova versão estável) e depois que estava usando a versão 1.0.0-beta.27 .. o aplicativo funciona com a versão beta versão, mas tem esse problema com a versão 1.0.0 ... então percebo que você está usando uma versão fixa da navegação de reação no seu último lançamento (1.0.0-22.beta)

então a questão é: existe uma maneira de ainda usar o RNRF 4.0.0-beta.24 MAS usando uma versão fixa (como 1.0.0-27.beta, por exemplo)?

Quero dizer, acho que não faz sentido que o 4.0.0-beta.24 use ^ 1.0.0-beta19 (que resultará na instalação da última versão 1.0.0) e uma versão mais recente, como 4.0.0-beta .28 usa uma versão inferior fixa (1.0.0-beta.22)

questionAnswers(1)

yourAnswerToTheQuestion