У меня проблема с реакцией, и я долго не могу с этим разобраться.
Я не могу понять, что произошло.
Какой сценарий: Мое приложение использует React и Redux. Я держу все свое состояние в редуксе.
Я установил некоторое состояние dataRefreshed
в состояние редукции для обработки страницы повторного рендеринга при обновлении данных из API.
Я использую componentWillReceiveProps метод жизненного цикла.
в моем избыточном состоянии
let initialState = {
dataRefreshed: false
}
при запуске моего запроса, в избыточном
case START_REQUEST:
return {
...state,
dataRefreshed: false
};
case SUCCESS_REQUEST:
return {
...state,
dataRefreshed: true
};
Итак, в моем компоненте, когда я делаю запрос и получаю из API новые данные:
componentWillReceiveProps(nextProps) {
if (nextProps.Reducer.dataRefreshed) {
apiCall();
}
}
, так что если подумать с логикой:
1 - когда мой запрос запускается и запрос получает статус в порядке, мой dataRefreshed имеет значение true
2- и здесь nextProps.dataRefreshedи this.props.dataRefreshed не равно.
До сих пор все работает хорошо. Мое состояние работает и apiCall () выполнено.
, но apiCall
функция запущена 10 раз
, почему мое состояние переключается один раз, поэтому мое состояние переключается в true из false. Но изнутри моя функция вызывает миллион раз.
Я не могу понять, в чем здесь логика.
Я всерьез думаю, что живая реакция из-за этого