私のgetBoundingClientRectは、常に値が0のオブジェクトを返します。私はそれが非同期に関連するものだと思いますか?ここでは、コンポーネントの幅とxを取得する関数の定義を示します。コンポーネントのサイズを取得する
componentDidMount() {
this.setState({
left: Math.round(this.container.getBoundingClientRect().width),
x: Math.round(this.container.getBoundingClientRect().x)
});
}
そして、ここでは、レンダリング関数の先頭である:ここで
render() {
const containerStyle = {
left : `-${Math.min(this.state.left, this.state.x) - 35}px`,
};
return (!!this.state.visible &&
<div
className={styles.container}
style={containerStyle}
ref={(element) => { this.container = element; }}
>
はあなたではなく、インラインrefのREFコールバックを使用する必要がgetBoundingClientRect
DOMRect {x: 0, y: 0, width: 0, height: 0, top: 0, …}
bottom : 0
height : 0
left : 0
right : 0
top : 0
width : 0
x : 0
y : 0
うんうん。:)感謝の気持ち – user2391356