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

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

新規登録して質問してみよう
ただいま回答率
85.48%
Gatsby

Gatsbyとは、Reactベースの静的サイトジェネレータ。最新のフロントエンド技術を活かし、機能豊富なWebサイトやアプリケーションを作ることが可能です。GraphQLを用いてあらゆるソースからサイトのデータを取得。指定した設定に基づいて静的サイトを構築することができます。

JavaScript

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

React.js

Reactは、アプリケーションのインターフェースを構築するためのオープンソースJavaScriptライブラリです。

Q&A

0回答

1423閲覧

【Gatsby】react-image-galleryでページが表示されないエラーが発生する

ug_o

総合スコア39

Gatsby

Gatsbyとは、Reactベースの静的サイトジェネレータ。最新のフロントエンド技術を活かし、機能豊富なWebサイトやアプリケーションを作ることが可能です。GraphQLを用いてあらゆるソースからサイトのデータを取得。指定した設定に基づいて静的サイトを構築することができます。

JavaScript

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

React.js

Reactは、アプリケーションのインターフェースを構築するためのオープンソースJavaScriptライブラリです。

0グッド

0クリップ

投稿2021/08/28 06:01

編集2021/08/28 06:02

Gatsbyでreact-image-galleryを導入しました。
表示自体は問題なくされるのですが、Unhandled Runtime Errorが出てページの表示ができない時があります。(真っ白になります)
下記エラー内容になります。

One unhandled runtime error found in your files. See the list below to fix it: Error in function eval in ./node_modules/react-image-gallery/build/image-gallery.js:1 Cannot read property 'originalClass' of undefined ./node_modules/react-image-gallery/build/image-gallery.js:1

MarkDownファイルから外部アップローダーから画像はを取得しています。

gallery: - image: https://ucarecdn.com/decd81bb-1a82-4b39-ac39-b14c5f6bfaac/ alt: bookends-coffee-service_shop - image: https://ucarecdn.com/56ab0a97-79d5-4aa3-af03-e1730a5ecb2b/ alt: bookends-coffee-service_coffee

スライダーを導入しているコンポーネント

import React, { Component, Fragment } from 'react' import ImageGallery from 'react-image-gallery' import PropTypes from 'prop-types' import { graphql } from 'gatsby' import 'react-image-gallery/styles/css/image-gallery.css' export const query = graphql` fragment Gallery on MarkdownRemark { frontmatter { gallery { alt image title } } } ` export default class Gallery extends Component { state = { loaded: false, sliderImages: [], index: 0 } getImageInfo = (img, index) => fetch(img.image + '-/json/') .then(res => res.json()) .then( result => { const newImagesArr = [...this.state.sliderImages] newImagesArr[index] = { original: img.image, originalAlt: img.title, thumbnail: img.image, thumbnailAlt: img.title } this.setState({ sliderImages: newImagesArr }) return true }, error => { console.log(error) return false } ) componentDidMount() { const { images } = this.props, maxCount = images.length let loopCount = 1 for (let i in images) { if (this.getImageInfo(images[i], i)) { this.setState({ loaded: loopCount === maxCount }) loopCount++ } } } render() { const properties = { lazyLoad: true, showNav: false, showPlayButton: false, showFullscreenButton: false } return ( <Fragment> <div> <ImageGallery items={this.state.sliderImages} {...properties} /> </div> </Fragment> ) } } Gallery.propTypes = { images: PropTypes.array.isRequired }

憶測ですが、画像取得のループ処理で問題があるのかと思っています。
何か解決方法などご教授頂けますと幸いです。

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

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

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

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

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

guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

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

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

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問