Как сохранить маршрут в реакции-родной с реагировать-навигации? - PullRequest
3 голосов
/ 12 марта 2019

Я пытаюсь заставить реагирующую навигацию запоминать путь пользователя. Таким образом, это сохраняется, где пользователи находятся в избыточном количестве Это для случая, когда пользователь нажимает кнопку «Назад» и открывает экран с LIFO способом. Интересно, правильно ли я пытаюсь сделать то, что пытаюсь сделать?

Проблема в том, что мой путь возникает, когда на сенсорную вещь нажимают несколько раз. Если он щелкнул несколько раз, тот метод, который связан со стеком пути, в котором находится пользователь, вызывается несколько раз и многократно укладывает путь в массиве redux.

Вот мой код.


clicked() метод составляет clicked state до true. init_clicked() метод делает clicked state до false.

mainScreen.js

/*
if click button then call moveToFavorite method.
*/

moveToFavorite = async () => {
        const {fetching, ScreenActions, navigation, clicked} = this.props;
        const {push, navigate} = navigation;
/*currunt state 
{
    userPath: [],
    clicked: false
} 
*/
        if(!clicked) {
            ScreenActions.clicked();
            await ScreenActions.stackScreen('favorite'); // save the path name, 'favorite' to redux

/* state
{
    userPath: ['favorite'],
    clicked: false <= but what I expect was it should be 'true'

so it can make clicking multiple times.
if click twice then, userPath is ['favorite', 'favorite']

}
*/
            navigate('FavoriteScreen');
        }
    }

favoriteScreen.js

componentDidMount() {
        const {navigation, ScreenActions} = this.props;
        ScreenActions.init_clicked(); // this one executes earlier than the ScreenActions.clicked() in favoriteScreen.js
//That's why state clicked state is changed to false right away.
    }
...