Реактивный рабочий код не работает после добавления строки dispatch () - PullRequest
0 голосов
/ 18 сентября 2018

У нас есть компонент, и у нас установлена ​​wix / реагировать на родную навигацию.Раньше работал нормально, но мы поймали ошибку и повторно обработали код для запуска действия в случае ошибки, чтобы заставить навигацию перейти на один уровень.

Код ниже, работает как положено на IOS,но не возвращается на Android.

Много искал, но ничего не смог найти.Буду признателен за любые решения.

Кстати, все хорошо в отладке, даже пытался протоколировать метод, реквизиты, состояние.Записывает, но не запускает.

Файл компонента;

Component.js

...

// Constructor here

constructor(props) {
 super(props);
}

// Checking the shouldGoBack in componentDidUpdate and firing backPressed method to if it is true.

componentDidUpdate() {
    if (this.props.dataReducer.shouldGoBack) {
        // The reason why the below line here is going only one screen back. Otherwise the navigator pops to root.
        this.props.dispatch(shouldGoBack(false));

        // This normally works on both Android and IOS, after adding the line above, IOS is working fine, but doesn't work on Android.
        this.backPressed.bind(this);        }
}

// This is the line to work if shouldGoBack is true.
backPressed() {
    if (this.props.webViewCanGoBack !== undefined && this.props.webViewCanGoBack === true) {
        this.props.onWebViewBack();
    } else {
        this.props.navigator.pop();
    }
}

...

и dataActions.Файл js должен определить действие GoBack.

dataActions.js

...

export function shouldGoBack(bool) {
    return {
        type: 'SHOULD_GO_BACK',
        bool
    }
}

....
...