🦁
React Nativeでテキスト内のURLをリンク化する
React Nativeではデフォルトでテキスト内のURLをいい感じにリンク化してくれる機能はありません。
先日チャット機能を開発していた際にテキスト内のURLをリンク化しなければならない状況に遭遇しました。
そのときの対応を共有しようと思います!
react-native-hyperlink
今回使用したのはreact-native-hyperlink
というライブラリです。
使い方は至ってシンプルでライブラリを読み込んだら、対象の要素をラップするだけです。
実際に使い方も見ていきます。
インストール
npm i --save react-native-hyperlink
ソースコード (実装の一部を抜粋しております)
import { Text } from 'react-native';
import { Hyperlink } from 'react-native-hyperlink';
import { styles } from './HyperlinkView.styles';
import type { HyperlinkViewProps } from './HyperlinkView.types';
function HyperlinkView(props: HyperlinkViewProps) {
return (
<Hyperlink linkDefault linkStyle={[styles.link]}>
<Text style={[styles.text]}>
{props.text}
</Text>
</Hyperlink>
);
}
export { HyperlinkView };
{props.text}
には任意の文字列が入ります
今回の実装では<Hyperlink>
のPropsはlinkDefault
とlinkStyle
しか指定していませんが、そのほかにも以下のPropsがあります
linkify
linkStyle
linkText
onPress
onLongPress
linkDefault
injectViewProps
ここではここの説明は省かせていただきますので気になった方は調べてみてください!
動作確認
以下のように実際にURLのみがリンク化されているのが確認できました
before
after
おわりに
最後まで読んでいただきありがとうございました!
今後の実装の参考になれば幸いです。
ちなみに開発しているアプリは以下です、興味あればぜひ触ってみていただけると嬉しいです🦀
Discussion