Это немного странно, чтобы воспроизвести, пришлось использовать таймауты, чтобы взломать его, но это действительно имитирует проблему, которую я имею.
https://jsfiddle.net/mwqyub1v/13/
1) Реагироватьрендерит div
с abc123
. Управляйте этой строкой (добавьте 4
или что-то еще)
2) После первого таймаута React удалит содержимое - введите что-нибудь в поле вручную,до срабатывания второго таймера. .
3) Во втором таймере React выполняет запуск метода render
(обратите внимание на срабатывание регистрации) с this.props.value
как null
, но div не обновляется (он не удаляет текст, который вы набрали, так как abc123 исчез).
Я знаю, что игра с содержимым contenteditable может помешать React иметь возможность управлятьэто содержание (следовательно, я подавляю предупреждение).Но почему компонент обновляется правильно после того, как я изменил текст в шаге 1 выше?Кроме того, если второй таймер устанавливает value
как какой-то другой текст, а не null
, тогда снова компонент обновляется должным образом.даже когда значение null
?