Я получаю React error # 185 только на сафари и на производстве.Ошибка не воспроизводится локально.Другие браузеры (chrome, firefox, ie11 и т. Д.) Работают нормально.
версия реакции: 16.6.3
Превышена максимальная глубина обновления.Это может произойти, когда компонент повторно вызывает setState внутри componentWillUpdate или componentDidUpdate.React ограничивает количество вложенных обновлений для предотвращения бесконечных циклов.
Код компонента:
class SidePage extends Component<IProps, IState> {
constructor(props: IProps) {
super(props);
this.state = {
data: null,
};
}
componentDidMount() {
this.getData();
}
getData = async () => {
try {
const data = await Api.getData();
this.setState({data});
} catch (e) {
// ...
}
}
}
Жизненный цикл компонента:
- componentDidMount
- setState
- сбой
Трассировка стека:
[Error] Invariant Violation: Minified React error #185; visit https://reactjs.org/docs/error-decoder.html?invariant=185 for the full message or use the non-minified dev environment for full errors and additional helpful warnings.
(anonymous function) — main.bb228bd8.js:21142:160
i — main.bb228bd8.js:21154
$a — main.bb228bd8.js:24598
enqueueSetState — main.bb228bd8.js:23227
setState — main.bb228bd8.js:20864
_setStateIfChanged — main.bb228bd8.js:15330
t — main.bb228bd8.js:15233:110
fo — main.bb228bd8.js:23147
lo — main.bb228bd8.js:23123
Ni — main.bb228bd8.js:24890
Ti — main.bb228bd8.js:24709:99
Oi — main.bb228bd8.js:24695
Si — main.bb228bd8.js:24637
$a — main.bb228bd8.js:24595
enqueueSetState — main.bb228bd8.js:23227
setState — main.bb228bd8.js:20864
(anonymous function) — main.bb228bd8.js:65899
(anonymous function) — main.bb228bd8.js:65804
i — main.bb228bd8.js:65729
promiseReactionJob
_a (main.bb228bd8.js:59:66281)
callback (main.bb228bd8.js:59:70573)
fo (main.bb228bd8.js:59:46010)
lo (main.bb228bd8.js:59:45758)
Ni (main.bb228bd8.js:59:90026)
Ti (main.bb228bd8.js:59:85416)
Oi (main.bb228bd8.js:59:84761)
Si (main.bb228bd8.js:59:83782)
$a (main.bb228bd8.js:59:82685)
enqueueSetState (main.bb228bd8.js:59:47613)
setState (main.bb228bd8.js:51:1920)
(anonymous function) (main.bb228bd8.js:96:661652)
(anonymous function) (main.bb228bd8.js:96:659984)
i (main.bb228bd8.js:96:658858)
promiseReactionJob
Почему это происходит и как это исправить?
Спасибо!