В моем приложении на моем компьютере есть экран регистрации, где пользователь регистрируется сам. Таким образом, в процессе регистрации 4 конечные точки получают удар.
Все, что я хочу сделать, это, если в случае, если после соединения с первой конечной точкой интернет-соединение пропало, как мы можем откатить его?
Я пытаюсь сохранить четыре строки в локальном хранилище для четырех конечных точек в componentDidMount (), например:
async componentDidMount() {
await AsyncStorage.setItem("one", "endPointOne");
await AsyncStorage.setItem("two", "endPointTwo");
await AsyncStorage.setItem("three", "endPointThree");
await AsyncStorage.setItem("four", "endPointFour");
}
Я проверяю критерии следующим образом:
let endPoint_one = await AsyncStorage.getItem("one");
if(endPoint_one === "endPointOne") { hitEndPointOne }
И когда конечные точки становятся успешными, конечные точки удаляются из локального хранилища, например:
try {
axios.post(${SERVER_URL}${ENDPOINT_ONE})
.then((response) => {
if(response.status !== 200) {
dispatch({
type: REQ_1_FAIL
});
return 0;
}
AsyncStorage.remove("one");
})
} catch(err) { dispatch({type: ERR})}
Проблема начинается здесь, когда поражается первая конечная точка, отключается интернет и пользователь закрывает приложение.
После того, как пользователь снова запустит приложение, на странице регистрации снова вызывается componentDidMount (), и четыре конечные точки снова сохраняются локально, что вызывает повторный вызов первой конечной точки и т. Д. Для оставшихся конечных точек, даже если они завершены
После первой попытки регистрации, ее перепутали ...
Есть ли конкретный или стандартный способ сделать это?