我有一个小React项目。当我从infosection.elements.js调用一个属性时,不幸的是,浏览器中只显示alt部分,而不显示图像本身。请帮助我显示这个代码的图像。非常感谢。
app.js
import React from "react";
import GlobalStyle from "./globalStyles";
import Home from "./pages/HomePage/Home";
import { BrowserRouter as Router, Switch, Route } from "react-router-dom";
import { Navbar } from "./components";
function App() {
return (
<Router>
<GlobalStyle />
<Navbar />
<Switch>
<Route path="/" exact component={Home} />
</Switch>
</Router>
);
}
export default App;
data.js:
export const homeObjOne = {
primary: true,
lightBg: false,
lightTopLine: true,
lightText: true,
lightTextDesc: true,
topLine: "Marketing Agency",
headline: "Lead Generation Specialist for Online Businesses",
description:
"We help business owners increase their revenue. Our team of unique specialist can help you achieve your business goals.",
buttonLabel: "Get Started",
imgStart: "",
img: require("../../images/svg-1.svg"),
alt: "Credit Card",
start: "",
};
export const homeObjTwo = {
primary: true,
lightBg: false,
lightTopLine: true,
lightText: true,
lightTextDesc: true,
topLine: "Instant Setup",
headline: "Extremely quick onboarding process",
description:
"Once you've joined, our team of specialist will reach out to you and get you set up in minutes.",
buttonLabel: "Learn More",
imgStart: "",
img: require("../../images/svg-2.svg"),
alt: "Vault",
start: "",
};
export const homeObjThree = {
primary: false,
lightBg: true,
lightTopLine: false,
lightText: false,
lightTextDesc: false,
topLine: "Sarah Jeni",
headline:
"Ultra helped me increase my revenue by over 3X in less than 3 months!",
description:
"Their team is wonderful! I can't believe I didn't start working with them earlier.",
buttonLabel: "View Case Study",
imgStart: "start",
img: require("../../images/profile.jpg"),
alt: "Vault",
start: "true",
};
export const homeObjFour = {
primary: true,
lightBg: false,
lightTopLine: true,
lightText: true,
lightTextDesc: true,
topLine: "Secure Database",
headline: "All your data is stored on our secure server",
description:
"You will never have to worry about your information getting leaked. Our team of security experts will ensure your records are kept safe.",
buttonLabel: "Sign Up Now",
imgStart: "start",
img: require("../../images/profile.jpg"),
alt: "Vault",
start: "true",
};
home.js:
import React from "react";
import { homeObjOne, homeObjTwo, homeObjThree, homeObjFour } from "./Data";
import { InfoSection } from "../../components";
function Home() {
return (
<>
<InfoSection {...homeObjOne} />
<InfoSection {...homeObjThree} />
<InfoSection {...homeObjTwo} />
<InfoSection {...homeObjFour} />
</>
);
}
export default Home;
infosection.js:
import React from "react";
import { Link } from "react-router-dom";
import { Container, Button } from "../../globalStyles";
import {
InfoSec,
InfoRow,
InfoColumn,
TextWrapper,
TopLine,
Heading,
Subtitle,
ImgWrapper,
Img,
} from "./InfoSection.elements";
function InfoSection({
primary,
lightBg,
topLine,
lightTopLine,
lightText,
lightTextDesc,
headline,
description,
buttonLabel,
img,
alt,
imgStart,
start,
}) {
return (
<>
<InfoSec lightBg={lightBg}>
<Container>
<InfoRow imgStart={imgStart}>
<InfoColumn>
<TextWrapper>
<TopLine lightTopLine={lightTopLine}>{topLine}</TopLine>
<Heading lightText={lightText}>{headline}</Heading>
<Subtitle lightTextDesc={lightTextDesc}>{description}</Subtitle>
<Link to="/sign-up">
<Button big fontBig primary={primary}>
{buttonLabel}
</Button>
</Link>
</TextWrapper>
</InfoColumn>
<InfoColumn>
<ImgWrapper start={start}>
<Img src={img} alt={alt} />
</ImgWrapper>
</InfoColumn>
</InfoRow>
</Container>
</InfoSec>
</>
);
}
export default InfoSection;
infosection.elements.js:
import styled from "styled-components";
export const InfoSec = styled.div`
color: #fff;
padding: 160px 0;
background: ${({ lightBg }) => (lightBg ? "#fff" : "#101522")};
`;
export const InfoRow = styled.div`
display: flex;
margin: 0 -15px -15px -15px;
flex-wrap: wrap;
align-items: center;
flex-direction: ${({ imgStart }) => (imgStart ? "row-reverse" : "row")};
`;
export const InfoColumn = styled.div`
margin-bottom: 15px;
padding-right: 15px;
padding-left: 15px;
flex: 1;
max-width: 50%;
flex-basis: 50%;
@media screen and (max-width: 768px) {
max-width: 100%;
flex-basis: 100%;
display: flex;
justify-content: center;
}
`;
export const TextWrapper = styled.div`
max-width: 540px;
padding-top: 0;
padding-bottom: 60px;
@media screen and (max-width: 768px) {
padding-bottom: 65px;
}
`;
export const ImgWrapper = styled.div`
max-width: 555px;
display: flex;
justify-content: ${({ start }) => (start ? "flex-start" : "flex-end")};
`;
export const TopLine = styled.div`
color: ${({ lightTopLine }) => (lightTopLine ? "#a9b3c1" : "#4B59F7")};
font-size: 18px;
line-height: 16px;
font-weight: 700;
letter-spacing: 1.4px;
margin-bottom: 16px;
`;
export const Img = styled.img`
padding-right: 0;
border: 0;
max-width: 100%;
vertical-align: middle;
display: inline-block;
max-height: 500px;
`;
export const Heading = styled.h1`
margin-bottom: 24px;
font-size: 48px;
line-height: 1.1;
font-weight: 600;
color: ${({ lightText }) => (lightText ? "#f7f8fa" : "#1c2237")};
`;
export const Subtitle = styled.p`
max-width: 440px;
margin-bottom: 35px;
font-size: 18px;
line-height: 24px;
color: ${({ lightTextDesc }) => (lightTextDesc ? "#a9b3c1" : "#1c2237")};
`;
我假设您使用create-react-app作为样板。如果是:
>
然后您可以将data.js/code>中的 如果没有必要,我会避免