我使用create-react-app
创建了一个新的react应用,然后使用styled-component
安装了npm
。但是当我在组件中使用它时,出现以下错误。
无法编译。 ./src/Components/Lightbox/styledLightbox.js
找不到模块:
无法解析“样式化组件” '/ Users / ishan / Documents / react-app / src / Components / Lightbox'
以下是组件:
import React, { Component } from 'react';
import { LightboxWrapper } from './styledLightbox';
class Lightbox extends Component {
renderEntry() {
if (this.props.lightbox.type === "photo") {
return <img alt="name" src={this.props.lightbox.entry} />;
}
if (this.props.lightbox.type === "video") {
return <video src={this.props.lightbox.entry} onLoadedMetadata={(e) => {console.log("Video duration is: "+e.currentTarget.duration) } } autoPlay muted onEnded={() => console.log("Video ended")} width='100%' height='100%' ></video>
}
if(this.props.lightbox.type === "text"){
return <div> <p className="lightbox text"> {this.props.lightbox.entry} </p> </div>
}
}
render() {
let classList = this.props.lightbox.status === true ? "lightbox-wrapper active" : "lightbox-wrapper";
return (
<LightboxWrapper className={classList}>
{/* {this.renderEntry()} */}
</LightboxWrapper>
);
}
}
export default Lightbox;
以下是为在其他组件中使用而创建的样式化组件:
import styled from "styled-component";
export const LightboxWrapper = styled.div`
display: none;
position: fixed;
z-index: 100;
left: 0;
top: 0;
width: 100%;
height: 100%;
overflow: auto;
background: radial-gradient(
center,
ellipse farthest-corner,
rgba(255,255,255,0) 0%,
rgba(255,255,255,0) 100%
);
.active {
display: block;
background: radial-gradient(
center,
ellipse farthest-corner,
rgba(255,255,255,0.5) 0%,
rgba(255,255,255,0.1) 100%
);
}
.active img, .active video {
max-width: 70%;
height: auto !important;
margin: 0 auto;
opacity: 1;
/* box-shadow: 0px 2px 7px rgba(0,0,0,0.2); */
transition: opacity 0.5s linear;
animation: fadeInScale 1.2s ease-in-out;
max-height: 70%;
width: auto !important;
position: relative;
top: 11%;
}
`;
答案 0 :(得分:1)
npm中没有这样的样式化组件,这里s末尾缺少
您需要安装样式组件
npm i styled-components