カプセル化を壊さずに次のようなことを行うためのカノニカルな方法はありますか? 反応カプセル化を破ることなくDOMにアクセス
import React, { Component, PropTypes } from 'react';
class Dashboard extends Component {
constructor(props, context) {
super(props, context);
this.setRef = ::this.setRef;
}
componentDidMount() {
const node = ReactDOM.findDOMNode(this.someRef);
const newHeight = window.innerHeight - node.offsetTop - 30;
node.style.maxHeight = `${newHeight}px`;
}
render() {
return (
<div id="some-element-id" ref={this.setRef}>
</div>
);
}
setRef(ref) {
this.someRef= ref;
}
}
はこれについて行くの提案方法のようですが、これはまだカプセル化を破壊し、ドキュメントがこの範囲に大きな赤い旗を持っています。
「ブレークカプセル化」の意味を定義できますか?あなたの懸念事項は何ですか?高いレベルでは、あなたが正しいです、あなたはReactコンポーネント内のDOMを命令的に操作することに注意する必要がありますが、特にあなたの懸念事項は何ですか? –
Reactはあなたから離れたDOMを抽象化するコンストラクトを提供し、あなたはDOMと対話するために非常に構築物の「外に出ています」 – Jordan