인프런 커뮤니티 질문&답변

이한성님의 프로필 이미지

작성한 질문수

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

결제하기 구현 - 2

soldout 부분 blur처리가 되지 않습니다

21.06.23 19:25 작성

·

184

1

안녕하세요 그랩님

soldout이 1일때 blur 처리가 안돼서 질문 남깁니다

그냥 <div className="product-blur" />로 들어가면 블러 처리가 되는데

{product.soldout === 1 &&  <div className="product-blur" />} 로 작성하고 나면 soldout이 1인 상품에 블러처리가 되지 않습니다.

DB.Browser에서 확인해봐도 soldout부분은 1로 되어있는데 왜 그런걸까요?

web, server 코드 다 올려봅니다

다른 부분 확인해보셔야할데가 있다면 알려주시면 바로 올리겠습니다

항상 감사합니다

<div id="product-list">
{products.map(function (product, index) {
return (
<div className="product-card">
{product.soldout === 1 && <div className="product-blur" />}
<Link
style={{ color: "inherit" }}
className="product-link"
to={`/products/${product.id}`}
>

app.post("/purchase/:id", (req, res) => {
const { id } = req.params;
models.Product.update(
{
soldout: 1,
},
{
where: {
id,
},
}
)
.then((result) => {
res.send({
result: true,
});
})
.catch((error) => {
console.error(error);
res.status(500).send("에러가 발생했습니다");
});
});

답변 5

4

그랩님의 프로필 이미지
그랩
지식공유자

2021. 07. 01. 23:53

괜찮습니다 ㅎㅎ 로그를 잘 찍어주셨네요!

현재 product에  soldout이 들어가있는 로그가 있나요? 현재 보여주신 로그에는 soldout을 보내주지 않고 있습니다.

아마 제가 봤을 때 서버쪽에서 GET /products 부분에 아래와 같이 attributes에 soldout이 추가되어야 합니다!

app.get("/products", (req, res) => {
models.Product.findAll({
order: [["createdAt", "DESC"]],
attributes: [
"id",
"name",
"price",
"createdAt",
"seller",
"imageUrl",
"soldout"
],
})

1

그랩님의 프로필 이미지
그랩
지식공유자

2021. 06. 24. 19:58

혹시 product-blur의 style은 어떻게 적용되어있나요~?

soldout이 잘 들어있다면 해당 컴포넌트는 잘 들어가는 게 맞을 것 같아요ㅎㅎ

0

이한성님의 프로필 이미지
이한성
질문자

2021. 06. 27. 13:09

안녕하세요 그랩님!

혹시 이걸 말씀하시는게 맞을까요ㅠ?

너무 몰라서 죄송합니다ㅠㅠㅠ

0

그랩님의 프로필 이미지
그랩
지식공유자

2021. 06. 27. 09:38

아 그러면  soldout 데이터를 확인해보는 게 빠르겠군요.

아래와 같이 product를 화면에 렌더링할 때 product 데이터를 로그로 남겨보시겠어요?

현재 문제가 되는 product의 로그를 캡쳐해서 보여주시면 확인이 가능할 것 같아요~!

<div id="product-list">

{products.map(function (product, index) {

 console.log(product)

 return (

0

이한성님의 프로필 이미지
이한성
질문자

2021. 06. 25. 19:18

point-blur 코드 올려봅니다.

.product-blur {
position: absolute;
top: 0;
left: 0;
right: 0;
bottom: 0;
background-color: #ffffffaa;
pointer-events: none;
}

그냥 <div className="product-blur" />로 들어가면 블러 처리가 잘 되는데

{product.soldout === 1 &&  <div className="product-blur" />} 로 작성하고 나면 블러가 안됩니다ㅠ