inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

비전공자를 위한 진짜 입문 올인원 개발 부트캠프

상품상세페이지에서 잘 안됩니다.

192

김민지

작성한 질문수 3

1

보시는것과 같이 이렇게 뜹니다

혹시 몰라 제가 입력한 코드도 함께 보여드립니다

보시고 틀린 부분은 꼭 가르쳐주세요!

상품 상세 페이지구현 2에서 헤더와 바디, 푸터 외에는 css는 아직 하지 않았습니다.

App.js

import './App.css';
import MainPageComponent from "./main/index.js";
import {Switch, Route} from "react-router-dom";
import UploadPage from './upload';
import ProductPage from './product';

function App() {
  return (
    <div>
      <div id="header">
    <div id="header-area">
      <img src="/images/icons/logo.png" />
    </div>
  </div>
  <div id="body">
      <Switch>
        <Route exact={true} path="/">
      <MainPageComponent />
      </Route>
      <Route exact={true} path="/products/:id">
        <ProductPage />
      </Route>
      <Route exact={true} path="/upload">
        <UploadPage />  
      </Route>
      </Switch>
      </div>
  <div id="footer"></div>
  </div>
  );
}

export default App;

product/index.js

import {useParams} from "react-router-dom";
import axios from "axios";
import { useEffect, useState } from "react";

function ProductPage(){
    const {id} = useParams();
    const [product, setProduct] = useState(null);
    useEffect(function(){
    axios.get(`https://361064f0-c286-4d2b-9664-2d0715b5a18f.mock.pstmn.io/products/${id}`)
    .then(function(result){
        setProduct(result.data);
    }).catch(function(error){
        console.error(error);
    })

},[])

if(product===null){
    return <h1>상품 정보를 받고 있습니다...</h1>
}

    return (
        <div>
            <div id="image-box">
                <img src={"/" + product.imageUrl} />
            </div>
            <div id="profile-box">
                <img src="/images/icons/avatar.png" />
                <span>{product.seller}</span>
            </div>
        </div>
    );
}

export default ProductPage;

main/index.js

import React from "react";
import "./index.css";
import axios from "axios";
import {Link} from "react-router-dom";

function MainPage(){
    const [products, setProducts] = React.useState([]);
    React.useEffect(
        function(){
            axios.get( "https://361064f0-c286-4d2b-9664-2d0715b5a18f.mock.pstmn.io/products").then(function(result){
        console.log(result)
        const products = result.data.products;
        setProducts(products);
    }).catch(function(error){
        console.error("에러발생 : ", error)
    })
        },[])
    return (
    <div>
    <div id="banner">
      <img src="images/banners/banner1.png" />
    </div>
    <h1>판매되는 상품들</h1>
    <div id="product-list">
        {products.map(function(product, index){
                return(
                    <div className="product-card">
                    <Link className="product-link" to={`/products/${product.id}`}>
                    <div>
                        <img className="product-img" src={product.imageUrl} />
                    </div>
                    <div className="product-contents">
                        <span className="product-name">
                            {product.name}
                        </span>
                        <span className="product-price">
                            {product.price}
                        </span>
                        <div className="product-seller">
                            <img className="product-avatar" src="images/icons/avatar.png" />
                            <span>{product.seller}</span>
                        </div>
                    </div>
                    </Link>
                </div>
                )
            })
        }
    </div>
  </div>);
}

export default MainPage;

상품상세페이지구현2 머신러닝 배워볼래요? javascript react-native express react tensorflow nodejs HTML/CSS

답변 1

0

그랩

현재 Mock API 서버를 확인해보니 JSON 형식에 맞지 않게 응답을 보내는 것 같아요

그래서 API 응답 결과를 화면으로 보여주는 과정에서 데이터가 없는 것으로 보이구요.

 

imageUrl: ... 끝에 ,를 붙여주셔야 합니다. json은 key:value에 마지막을 제외하고는 ,를 꼭 붙여주셔야 합니다! 

 

https://361064f0-c286-4d2b-9664-2d0715b5a18f.mock.pstmn.io/products/1

[해결]그랩님 답변 주세요.

0

190

2

그랩님의 답변을 기다립니다/102강 전반적인 에러

0

163

2

[그랩님께]101강 안드로이드 에러들(Key prop)해결방법 궁금합니다.

0

139

2

[재질문][그랩님 답변 부탁드립니다]101강

0

162

2

[그랩님 답변 부탁드립니다]101강 Axios 에러와 502 Bad Gateway 질문

0

119

2

Ngrok 설치 후 forwarding Url 에러

0

145

2

[그랩님께,Ngrok 악성코드 인식 해결방법]질문 드립니다.

0

251

2

Ngrok 설치 후 forwarding Url로 연결 불가

0

157

1

그랩님,[꼭] 답변 부탁드립니다.

0

76

1

[꼭][[꼭] 그랩님, 답변 부탁드립니다], Failed to load resource: the server responded with a status of 404 (Not Found) 상품 상세 페이지 질문입니다.

0

162

1

6강/7강 수업

0

56

1

그랩님, 상품 상세 페이지 에러와 의문점 질문드립니다.

0

105

2

그랩님, 해결되지 않은 에러 메시지 [꼭] 답변 부탁 드립니다.

0

148

2

[재 질문]Cannot read properties of undefined (reading 'map') TypeError: Cannot read properties of undefined (reading 'map') 에러 해결 어떻게 하나요?

0

94

1

Cannot read properties of undefined (reading 'map') TypeError: Cannot read properties of undefined (reading 'map') 에러 해결 어떻게 하나요?

0

134

2

일반적인 css 꾸미기에서 width와 height의 값?

0

98

2

Windows에서의 업로드 후 홈화면 상품이미지 오류 해결방법

0

204

1

그랩마켓 웹화면 구현하기 -2 질문입니다.

0

127

1

react에 반영이 되지 않습니다.

0

250

1

터미널 npm install -g create-react-app 작성 후 오류

0

430

1

create-react-app my app 실행 시 에러

0

358

2

포스트맨 질문

0

105

1

<꼭 답변 부탁 드립니다>그랩선생님, [컴포넌트 사용하기] 강의에서 질문 있습니다.

0

269

2

그랩선생님, 질문 답변 부탁 드립니다.vscode에서 npm install -g create-react-app 입력 후 에러 입니다.

0

492

2