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

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

新規登録して質問してみよう
ただいま回答率
85.46%
Next.js

Next.jsは、Reactを用いたサーバサイドレンダリングなどを行う軽量なフレームワークです。Zeit社が開発しており、nextコマンドでプロジェクトを作成することにより、開発環境整備が整った環境が即時に作成できます。

JavaScript

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

React.js

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

Q&A

解決済

1回答

1378閲覧

SwiperReactコンポーネントでリロードを伴わない再レンダリングの時も正しく画像が表示されるようにしたい

splatooon-_sita

総合スコア2

Next.js

Next.jsは、Reactを用いたサーバサイドレンダリングなどを行う軽量なフレームワークです。Zeit社が開発しており、nextコマンドでプロジェクトを作成することにより、開発環境整備が整った環境が即時に作成できます。

JavaScript

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

React.js

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

0グッド

0クリップ

投稿2021/09/21 03:37

編集2021/09/21 03:39

前提・実現したいこと

現在、SwiperReactコンポーネントを使用して画像スライダーを実装しているのですが、別ページに遷移したときや別ページから帰ってきたときに画像が本来よりも大きいサイズで表示されてしまい、リロードをすると素の大きさに戻ってスライドしていくのですが、これはどのようなことが原因なのでしょうか?
また、正しく元の画像の大きさで表示されるにはどうすればいいでしょうか?

該当のソースコード

js

1import Rimage from "../common/images"; 2import Link from "next/dist/client/link"; 3import {Swiper,SwiperSlide} from "swiper/react"; 4import SwiperCore, { 5 Autoplay,Pagination,Navigation 6 } from 'swiper/core'; 7 SwiperCore.use([Autoplay]); 8 9export default function AutoSlide(props){ 10 let index = props.data 11 return( 12 <> 13 <div> 14 <Swiper autoplay={{ 15 'delay': 4500, 16 'disableOnInteraction': false 17 }} spaceBetween={30} slidesPerView={1.4} centeredSlides={true} loop={true} speed={700} 18 breakpoints={{"800":{"spaceBetween":50},"1100":{"slidesPerView":2.7}} }> 19 {index.map((value) => ( 20 <div> 21 <SwiperSlide > 22 <Link href={value.link} > 23 <a> 24 <div className="slideImg"> 25 <Rimage src={value.imgSrc} alt={value.alt} /> 26 </div> 27 </a> 28 </Link> 29 </SwiperSlide> 30 </div> 31 ))} 32 33 </Swiper> 34 </div> 35 36 <style jsx>{` 37 .slideImg{ 38 height:100%; 39 } 40 41 `}</style> 42 </> 43 ) 44}

試したこと

色々と調べて同じような状況かなと思える(https://teratail.com/questions/90243)質問を見つけたのですが、update()などここからどのように使用したら良いのかわからない状態です。swiperを初期化する必要があるのでしょうか?

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

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

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

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

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

guest

回答1

0

自己解決

observer={true}を追加すると解決できました。

投稿2021/09/23 07:19

splatooon-_sita

総合スコア2

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.46%

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

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

質問する

関連した質問