質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.31%
React Native

React Nativeは、ネイティブモバイルアプリ(iOS/Android)を作成できるJavaScriptフレームワークです。Reactと同じ設計のため、宣言的なコンポーネントでリッチなUIを開発することが可能です。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

TypeScript

TypeScriptは、マイクロソフトによって開発された フリーでオープンソースのプログラミング言語です。 TypeScriptは、JavaScriptの構文の拡張であるので、既存の JavaScriptのコードにわずかな修正を加えれば動作します。

Q&A

1回答

530閲覧

モーダルの画像の外側をクリックしてモーダルを閉じたい。

Sayre

総合スコア23

React Native

React Nativeは、ネイティブモバイルアプリ(iOS/Android)を作成できるJavaScriptフレームワークです。Reactと同じ設計のため、宣言的なコンポーネントでリッチなUIを開発することが可能です。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

TypeScript

TypeScriptは、マイクロソフトによって開発された フリーでオープンソースのプログラミング言語です。 TypeScriptは、JavaScriptの構文の拡張であるので、既存の JavaScriptのコードにわずかな修正を加えれば動作します。

0グッド

0クリップ

投稿2022/10/20 05:24

編集2022/10/20 08:18

前提

  • react-nativeのモーダル
  • react-responsive-carouselのカルーセル
  • next/imageのImage

を使用しています。

実現したいこと

上記前提で記載したものを使用して、複数の画像を表示しております。
現在閉じるボタンを押してモーダルを閉じることはできますが、
画像の外側をクリックしてモーダルを閉じる実装を追加したいです。

該当のソースコード

現在は画像と一緒にモーダルが閉じてしまっています。

javascript

1type ImageModalProps = ModalProps & { 2 closeModal: () => void 3 images: Images 4} 5 6const ImageModal: React.FC<ImageModalProps> = ({ images, closeModal, ...rest }) => { 7 8 const contentsWidth = Dimensions.get('window').width 9 const contentsHeight = Dimensions.get('window').height 10 11 return ( 12 <Modal {...rest}> 13 <TouchableOpacity activeOpacity={1} onPressOut={() => closeModal()}> 14 <Carousel> 15 {images.image.map((img, index) => ( 16 <TouchableWithoutFeedback key={index}> 17 <div> 18 {img.file_url && ( 19 <Image 20 src={img.file_url} 21 objectFit="contain" 22 width={contentsWidth} 23 height={contentsHeight} 24 /> 25 )} 26 </div> 27 </TouchableWithoutFeedback> 28 ))} 29 </Carousel> 30 <View style={{ position: 'absolute', top: 10, right: 30 }}> 31 <TouchableOpacity onPress={() => closeModal()}> 32 <FontAwesomeIcon icon={faTimesCircle} /> 33 </TouchableOpacity> 34 </View> 35 </TouchableOpacity> 36 </Modal> 37 ) 38} 39

どなたかお分かりになる方、ご助言いただけますと幸いです。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

あまり自信ないのですが、TouchableWithoutFeedbackコンポーネントにタップ時の処理を追記してみたらうまくいかないでしょうか??

<TouchableWithoutFeedback onPress={() => closeModal()}> ... </TouchableWithoutFeedback>

投稿2022/12/10 17:25

ams2020

総合スコア159

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.31%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問