Ответ 1
Настройка атрибута contenteditable
html позволяет изменять содержимое этого элемента в браузере. React предупреждает вас, что у вас есть дети внутри этого элемента, которым управляет React. Реакция работает только сверху вниз. Это означает, что он управляет моделью на верхнем уровне и поддерживает виртуальную DOM, представляющую эти данные, а затем отображает дерево DOM на основе этого виртуального DOM. Любые изменения, внесенные в DOM вне React (например, установка contenteditable
и позволяет содержание быть отредактированы пользователем непосредственно в браузере) будет потенциально сбрасывается или вызвать проблемы для React, когда он идет, чтобы обновить эти управляемые элементы.
В вашей ситуации вам все равно, что узел {this.props.children}
сбрасывается, потому что вы знаете, что вы ловите изменения и делаете то, что вам нужно. Это просто предупреждает вас, что вам лучше не ожидать, что этот узел останется неповрежденным и точно обновленным React, когда вы позволяете редактировать контент непосредственно браузером.
Если вы знаете, что делаете (и на данный момент это похоже на вас), вы можете подавить это предупреждение, добавив suppressContentEditableWarning={true}
.