Я почти уверен, что нашел ошибку React, но я хочу опубликовать вопрос здесь, прежде чем отправлять вопрос на Github.
Я сделаю ссылку на сокращенный тестовый пример, но вот поток данных:
У вас есть компонент React, и ему присвоен атрибут style={this.state.style}
.
Вы setState
, так что стильобъект теперь
style={
border: "1px solid red"
}
Вы setState
добавляете borderColor
к этому свойству стиля
style={
border: "1px solid red"
borderColor: "blue"
}
Позже,Вы setState
, чтобы удалить borderColor
style={
border: "1px solid red"
}
Что произойдет, если вы сделаете это?Ну, твоя граница становится черной.Если вы осмотрите DOM, чтобы увидеть стили, примененные к вашему элементу, он будет выглядеть так:
border-width: 1px;
border-style: solid;
border-image: initial;
Излишне говорить, что это не то, чего я ожидаю.Кажется, что React делает что-то вроде перевода стиля DOM, и он не ведет себя должным образом.Кто-нибудь может объяснить, почему это происходит?
Вот кодовое поле с сокращенным тестовым примером, демонстрирующим поведение.