Как сделать регидратацию обновленного слегка измененного стиля реквизита
Допустим, у меня есть очень простое приложение со следующим методом рендеринга.
render(){
return (<div style={{height:window.innerHeight}}/>);
}
В результате в следующем DOM:
<div data-reactroot="">
<div style="height:938px">
</div>
</div>
Теперь, когда я пытаюсь повторно увлажнить DOM, я получаю предупреждение о том, что стилевое свойство не совпадает, но в остальном все работает нормально, за исключением того факта, что высота div не обновляется до того уровня, который должен быть.
Что было бы лучшим способом либо исправить предупреждение, либо проигнорировать его (как все остальное работает) и заставить реагировать обновить элемент DOM.
Обратите внимание: - Я думаю, что это сработало нормально. Реакция 15.х. Используя 16.0.0 сейчас; - В этом примере с игрушкой я, очевидно, мог бы просто использовать высоту:"100%", но в реальной ситуации у меня нет такой роскоши, и мне приходится рассчитывать размеры таким образом, чтобы в конечном итоге зависеть от размера области просмотра.
1 ответ
Исправил ли МакГайвер здесь, прочитав консоль для этих предупреждений, а затем, если я получу их:
setTimeout(function(){
ReactDOM.unmountComponentAtNode(RoboReact.rootParent);
ReactDOM.render(RoboReact.rootElement,RoboReact.rootParent);
},100);
(кажется, не работает без setTimeout по некоторым причинам)