Я пытаюсь заставить реагирующую навигацию запоминать путь пользователя.
Таким образом, это сохраняется, где пользователи находятся в избыточном количестве
Это для случая, когда пользователь нажимает кнопку «Назад» и открывает экран с 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.
}