• 카테고리

    질문 & 답변
  • 세부 분야

    풀스택

  • 해결 여부

    미해결

react-slick CSS가 적용안되는 에러

22.03.05 18:10 작성 조회수 1.72k

0

안녕하세요 제로초님 강의 해주신 코드에서 조금 변경하여 진행 중인데  react-slick의  css가 적용이 되지 않는 에러가 발생하여 원인이 궁금하여 질문 남깁니다.(기능은 정상적으로 동작합니다.)

우선 제 생각엔 react-slick 내부적으로 css가 inherit 로 되어있어서 저 부분이 적용안되는 것 같기도하고 사이즈를 Wrapper 높이를 조절해도 해결이 안됩니다. 클래스 네임 보고 하나하나 css 커스텀 해서 적용하면 해결될 것 같은데 에러 발생 원인을 알고싶습니다.

우선 제가 구현하고 싶은 ui는 인스타그램 웹버전 참고해서 비슷하게 만들고 싶습니다. 현재화면과 전체코드 PostImages.js 첨부하겠습니다. 

현재 화면

전체 코드

https://github.com/HomieKim/SNS_Project/tree/master/front

PostImages.js

import React, { useCallback, useState } from 'react';
import PropTypes from 'prop-types';
import styled, { createGlobalStyle } from 'styled-components';
import Slider from 'react-slick';


const ImgWrapper = styled.div`
  padding: 16px;
  text-align: center;
  
  & img {
    margin: 0 auto;
    max-height: 750px;
  }
`;
const Global = createGlobalStyle`
  .slick-slide {
    display: inline-block;
    width : 100%;
  }
  .ant-card-cover {
    transform: none !important;
  }
`
const SlideWrapper = styled.div`
  max-height : 800px;
  overflow : hidden;
`;
const PostImages = ({images})=>{
  //const [showImagesZoom, setShowImagesZoom] = useState(false);
  const onZoom = useCallback(()=> {
    //setShowImagesZoom(true);
  },[]);

  const settings = {
    dots: true,
    infinite : true,
    speed: 500,
    slideToShow : 1,
    slideToScroll : 1
  }

  if(images.length === 1) {
    return (
      <>
        <img style={{ maxHeight : 750}} src={images[0].src} alt={images[0].src} onClick={onZoom} />
      </>
    )
  }

  return (
    <div>
      <Global />
      <SlideWrapper>
        <Slider {...settings}>
          {
            images.map((item) => (
              <ImgWrapper key={item.src} >
                <img   src={item.src} alt={item.src} />
              </ImgWrapper>
            ))
          }
        </Slider>
      </SlideWrapper>
    </div>
  )
}

PostImages.propTypes = {
  images: PropTypes.arrayOf(PropTypes.shape({
    src: PropTypes.string,
  })).isRequired,
};

export default PostImages;

 

좋은 강의 감사합니다!

 

답변 1

답변을 작성해보세요.

0

npm i slick-carousel 한 다음에

_app.js에 다음 두 줄 추가하세요.

import 'slick-carousel/slick/slick.css';
import 'slick-carousel/slick/slick-theme.css';
homie님의 프로필

homie

질문자

2022.03.06

감사합니다. 코드 추가하고 css 조금만 수정하니까 해결되네요