Я пытаюсь получить доступ к стилям ширины и высоты div в React, но столкнулся с одной проблемой. Это то, что я получил до сих пор:
componentDidMount() {
console.log(this.refs.container.style);
}
render() {
return (
<div ref={"container"} className={"container"}></div> //set reff
);
}
Это работает, но результат, который я получаю, представляет собой объект CSSStyleDeclaration, и в свойстве all я могу использовать все селекторы CSS для этого объекта, но ни один из них не установлен. Все они установлены в пустую строку.
Это вывод CSSStyleDecleration: http://pastebin.com/wXRPxz5p
Будем очень признательны за любую помощь в том, чтобы увидеть фактические стили (унаследованные от событий)!
Спасибо!
React.findDOMNode
устарелым? 23.06.2017React.findDOMNode
был там до версии 0.13.3. Теперь используйтеReactDOM
для всех операций, связанных с DOM. 24.06.2017React.findDOMNode
илиReactDOM.findDOMNode
. Из документации поReactDOM.findDOMNode
: для доступа к базовому узлу DOM. В большинстве случаев использование этого аварийного люка не рекомендуется, поскольку он пробивает абстракцию компонента. Дэн рекомендует вместо этого использоватьref
. 24.06.2017findDOMNode
: это не работает с Jest тестовый рендерер (но refs поддерживают) (Дэн Абрамов: Нет планов поддерживать findDOMNode() в тестовом рендерере, потому что он не должен зависеть от React DOM, и нет способа реализовать его так, чтобы он не перерыв в будущем) 20.07.2017this.container = React.createRef();
, затем попытался вызвать его в моем компоненте класса как<button onClick={()=>this.getStyle()} ref={this.container}>test</button>
, но затем получил другую ошибку типа: Window.getComputedStyle: аргумент 1 не реализует элемент интерфейса. 27.05.2020