タイトル通り、React Native で開発中のアプリで、ある特定の要素の高さを取得したかったのでその手順をまとめ。
実装には下記の記事を参考にさせていただきました。
React Nativeで任意のコンポーネントのサイズを取得する方法 – Qiita
https://qiita.com/karadaharu/items/07364597387e988c2648
で、要素の高さを取得するには onLayout
プロパティを使います。
サンプルコードは下記のとおりです。
getHeight = e => { console.log(`height: ${e.nativeEvent.layout.height}`); }
<View onLayout={this.getHeight}> ...... </View>
高さを取得したい要素に onLayout
プロパティで getHeight()
関数を指定しています。
あとは、getHeight()
関数内で、e
から要素の高さを取得します。
サンプルコードでは、取り合えず console.log()
で値を確認しているだけですが、実際には state
に保存した方が後々扱いやすいと思います。
なお、今回は使っていませんが、他にも要素の幅を取得したり、要素の x、y を取得することもできるようでした。
使い方は下記のとおりです。
// 要素の幅を取得 e.nativeEvent.layout.width // 要素の高さを取得 e.nativeEvent.layout.height // x 座標を取得 e.nativeEvent.layout.x // y 座標を取得 e.nativeEvent.layout.y
処理としては以上です!
以上、React Native で特定のコンポーネントの高さを取得する方法についてでした。
ご参考になれば幸いです。