2017-02-18 3 views
1

Когда значение выражения изменяется, редко эта ошибка возникает, и приложение больше не отвечает.Угловое - выражение изменилось после его проверки. Предыдущее значение

У меня есть на мой взгляд, эту функцию: {{generalService.timeFromNow(item.creation_time)}}

который называет: moment(timestamp, "X").fromNow()

Произвольно, когда время изменяется от 35 до 36, произошло это ошибка. image

Если у меня есть другое время для перемещения (тикания) минут, ошибка не возникает.

Такая ошибка возникает во всем моем приложении, и я не хочу, чтобы micromanage ngOnChanges, так как я думаю, что Angular должен управлять им.

+0

Когда вы используете enableprodmode в угловом2, эта ошибка исчезает. В противном случае выполните поиск элементов, которые изменяют значение во время цикла изменения набора. – laser

+0

@laser Но какова рациональность этой ошибки? почему это проблема для изменения во время обнаружения изменений? – Amit

+1

У меня есть один пример из моего опыта: у меня была директива [focusme] = «true» для одного элемента (и получилось другое). Когда компонент анализировался и запускался, он выдавал две директивы для двух разных входов и сначала менял фокус на один, затем на другой вход и сообщал об этой точно ошибке, говоря, что значение изменилось во время рендеринга (когда обычно это не должно). После этой ошибки я выяснил свою ошибку =) – laser

ответ

1

Это особенность Angular2 в режиме разработки, чтобы помочь выявить плохие проекты. Наличие этой ошибки показывает, что вам, вероятно, придется перепроектировать.

Например, предположим, что у вас есть два поля с этой привязкой. как текст и график.

{{generalService.timeFromNow (item.creation_time)}}

они могут в конечном итоге, показывая различные значения в Prod каждый сейчас и потом, если не решить эту проблему. Это будет очень трудно заметить в вашем обычном тестировании, и лишь небольшая часть ваших пользователей заметит это.

Решение, как правило, сохраняет результат «timeFromNow» в некоторой переменной состояния, так что он не может меняться в течение цикла обновления.

Смежные вопросы