Реакция: Максимальная глубина обновления превышена в сафари - PullRequest
0 голосов
/ 13 декабря 2018

Я получаю 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) {
            // ...
        }
    }
}

Жизненный цикл компонента:

  1. componentDidMount
  2. setState
  3. сбой

Трассировка стека:

[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

Почему это происходит и как это исправить?

Спасибо!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...