#javascript #reactjs #react-native #redux-thunk
#javascript #reactjs #react-native #переопределение-thunk
Вопрос:
Я использую redux-thunk
для вызова API. Когда ответ возвращается с сервера, я перехватываю их на componentDidUpdate
с помощью простой проверки следующим образом
async componentDidUpdate(prevProps) {
if (this.props.successCallin& amp;amp; !prevProps.successCallin&) {
executeSomeCode();
}
}
Проблема в том, что у меня 2 одинаковые проверки на 2 разных экранах, когда ответы возвращаются с сервера componentDidUpdate
выполняются обе проверки. Следовательно, он запускает оба executeSomeCode()
на обоих разных экранах. Как я предполагаю справиться с такого рода сценарием?
Комментарии:
1. откуда вы вызываете эту службу? с каждого экрана?
2. оба экрана вызывают один и тот же API, но с разными параметрами.
Ответ №1:
При вызове службы для определенного экрана вы можете использовать переменную уровня класса, которая может действовать как переключатель типа — true / false, где для this.switch изначально будет установлено значение false. при вызове службы просто обновите переменную класса на true и добавьте эту переменную в проверку логики if, как указано в приведенном выше примере.
Таким образом, каждый экран будет иметь свой собственный переключатель, который можно использовать для определения, предназначен ли вызов службы для этого конкретного экрана или нет.
Комментарии:
1. Вместо того, чтобы делать то, что вы предлагаете для переключения, я придумал другое решение (которое вдохновлено вашим решением) Я передаю дополнительный параметр в свой метод API и добавляю параметр в возвращаемый результат. Следовательно, метод в didUpdate может выполнять проверку логики. Поэтому я рассмотрю ваше предложение как свой ответ (: