【发布时间】:2021-08-30 17:18:05
【问题描述】:
目前我正在使用react-slick slider 在我的网站中有一个轮播组件,并使用 Strapi 作为我的 CMS。我想通过我正在获取的 CMS API 填写此内容。通常我使用这段代码来填写我的内容:
export default function Page({posts}) {
return (
{posts &&
posts.map((team) => (
{posts.Title}
))}
但是对于我的<Slider>,我正在使用这段代码并且无法添加我的.map 函数,因为该类正在扩展组件:
export default class BlogPost extends Component {
render() {
var settings = {
dots: true,
infinite: false,
speed: 500,
slidesToShow: 4,
slidesToScroll: 4,
initialSlide: 0,
nextArrow: <SampleNextArrow />,
prevArrow: <SamplePrevArrow />,
responsive: [
{
breakpoint: 1024,
settings: {
slidesToShow: 3,
slidesToScroll: 3,
infinite: true,
dots: true,
},
},
],
};
return (
<>
<div>
<Slider {...settings}>
<div>
<img style={{ width: "90%" }} src="/countries1.png" />
<div
style={{
minHeight: "100px",
padding: "30px",
textAlign: "center",
}}
>
<div>
Reasons to Acquire Antigua & Barbuda Citizenship by Investment{" "}
</div>
<br />
<div>Read More</div>
</div>
</div>
<div>
<h3>2</h3>
</div>
</Slider>
</div>
</>
);
}
}
export async function getStaticProps() {
const res = await fetch("http://localhost:1337/blogs");
const posts = await res.json();
return {
props: { posts },
};
}
有什么方法可以在这里使用.map 函数作为<Slider> 组件中的图像和标题?
我已经添加了我的代码的沙箱,codesandbox.io/s/recursing-solomon-c20on?file=/src/Slide.tsx 就在这里我已经在帖子数组中放入了虚拟数据,但实际上它来自getStaticProps API 调用
【问题讨论】:
-
如果我正确理解了您的要求。您可以在
componentDidMount或componentDidUpdate中调用getStaticProps,使用setState将结果存储在状态中,然后使用这些值映射divs和img中的render? -
由于我还是 React 新手,能否请您以代码形式显示此内容
标签: javascript reactjs api slick.js