[javascript] 리 액트 인라인 스타일로 backgroundImage 설정
backgroundImage
React 내 인라인 속성 내에서 사용하기 위해 정적 이미지에 액세스하려고합니다 . 불행히도, 나는 이것을하는 방법에 대해 말랐다.
일반적으로 방금 다음과 같이 생각했습니다.
import Background from '../images/background_image.png';
var sectionStyle = {
width: "100%",
height: "400px",
backgroundImage: "url(" + { Background } + ")"
};
class Section extends Component {
render() {
return (
<section style={ sectionStyle }>
</section>
);
}
}
이것은 작동 <img>
태그입니다. 누군가 둘 사이의 차이점을 설명 할 수 있습니까?
예:
<img src={ Background } />
잘 작동합니다.
감사합니다!
답변
backgroundImage 속성 안의 중괄호가 잘못되었습니다.
이미지 파일 로더와 함께 webpack을 사용하고 있으므로 Background는 이미 문자열이어야합니다.
backgroundImage: "url(" + Background + ")"
ES6 문자열 템플릿을 아래와 같이 사용하여 동일한 효과를 얻을 수도 있습니다.
backgroundImage: `url(${Background})`
답변
ES5를 사용하는 경우-
backgroundImage: "url(" + Background + ")"
ES6를 사용하는 경우-
backgroundImage: `url(${Background})`
backgroundImage 속성 작업에 값을 추가하는 동안 불필요한 중괄호를 기본적으로 제거하면 작동합니다.
답변
이미지를 전체 화면으로 설정하는 인라인 스타일 :
style={{
backgroundImage: "url(" + "https://images.pexels.com/photos/34153/pexels-photo.jpg?auto=compress&cs=tinysrgb&h=350" + ")",
backgroundPosition: 'center',
backgroundSize: 'cover',
backgroundRepeat: 'no-repeat'
}}
답변
require()
기능 을 사용하여 이미지를 컴포넌트로 가져올 수도 있습니다.
<div style={{ backgroundImage: `url(require("images/img.svg"))` }}>
두 개의 중괄호 세트에 유의하십시오 . 첫 번째 세트는 반응 모드로 들어가기위한 것이고 두 번째 세트는 객체를 나타 내기위한 것입니다.
답변
다음 backgroundImage
과 같은 속성 대신 템플릿 리터럴 (back-tick :`…`로 묶음)을 사용할 수 있습니다 .
backgroundImage: `url(${Background})`
답변
이 시도:
style={{ backgroundImage: `url(require("path/image.ext"))` }}
답변
나를 위해 일한 것은 다음과 같습니다.
style={{ backgroundImage: `url(${require("./resources/img/banners/3.jpg")})` }}