@Yu_yukk_Y (ゆっきー)

Are you sure you want to delete the question?

Leaving a resolved question undeleted may help others!

chakra UIのimageコンポーネントのsrcがうまく反映されない(Next/imageも)

解決したいこと

フロントエンド初心者です。
Next.jsでアプリを作っているのですが、next/imageの画像の表示がうまくいかず困っています。
具体的には、srcにstring型の変数を代入しISRしたとき、ソース上では別の値が表示されてしまっています。

調べてもそれらしい解決方法がわからず八方塞がりです。
有識者の方がおりましたら、どうかご教授いただけないでしょうか。

発生している問題・エラー

ソースコード


import { Box, HStack, Image, Text, VStack } from "@chakra-ui/react";
import { GetServerSideProps, GetStaticProps, NextPage } from "next";
import { Router, useRouter } from "next/router";
import axios, { Axios, AxiosError, AxiosResponse } from "axios";
import perfectQuestion from "../../entity/qa/perfectQuestion";
import QALayout from "../../components/qa/qaLayout";
import question from "../../entity/qa/question";

interface Props{
    content:content
}

const Page: NextPage<Props> = ({content}) => {
    const router = useRouter()
    if(!router.isFallback && !content) router.push("/404")
    if(router.isFallback){
        return (
            <Box>now loading</Box>
        )
    }
    const DEFAULT_IMAGE_PATH: string = (process.env.DEFAULT_PROFILE_IMAGE_PATH) ? process.env.DEFAULT_PROFILE_IMAGE_PATH : ""
    const ICON_IMAGE_URL: string = (content.image) ? content.image : DEFAULT_IMAGE_PATH
    console.log(ICON_IMAGE_URL)
    return (
        <QALayout>
            <VStack w={{ base:"100%",sm:"100vw",md:"calc(100vw - 270px)",lg:"calc(100vw - 210px)" ,"xl":"calc(400px + 50vw)" }} paddingLeft={{base:"0",sm:"60px",md:"calc((100vw - 800px) / 2)"}} paddingTop="100px">
                <VStack bgColor="red" w="90%" h="100px">
                    <HStack>
                    <Box width="40px" height="40px" >
                        <Image src={ICON_IMAGE_URL} alt="画像"></Image>
                    </Box>
                    <Text>{content.postedBy}</Text>
                    </HStack>
                </VStack>
            </VStack>
        </QALayout>
    )
}


問題の箇所

こちらがうまく解釈されません。

<Image src={ICON_IMAGE_URL} alt="画像"></Image>

デベロッパーツールで表示したソース

Imageタグのところが次のようになってしまいます。

<img alt="画像" src(unknown) chakra-image css-0>

試したことその1

const ICON_IMAGE_URL: string = (content.image) ? content.image : DEFAULT_IMAGE_PATH

const ICON_IMAGE_URL: string = (content.image) ? content.image : "image/img.png"

にしてみました

結果

表示がうまくいった

<img alt="画像" src="image/img.png" chakra-image css-0>

試したことその2

next/imageで最初と同様に変数を代入してみた

結果

最初同様にうまくいかなかった(src(unknown)となった)

最後に

重ねてにはなりますが、有識者の方がおりましたら原因、または解決方法をご教授願います

0 likes

1Answer

Comments

  1. @Yu_yukk_Y

    Questioner

    ICON_IMAGE_URLの間違いです。申し訳ございません。
    修正しておきました
  2. @Yu_yukk_Y

    Questioner

    教えていただいたように環境変数を
    DEFAULT_PROFILE_IMAGE_PATH -> NEXT_PUBLIC_DEFAULT_PROFILE_IMAGE_PATH
    に変更したところ、無事表示されました!
    自分では全くわからなかったため本当に助かりました!ありがとうございました

Your answer might help someone💌