【发布时间】:2021-04-17 06:23:28
【问题描述】:
一直在做 react js 项目。但是在将 props 传递给子组件时出现错误 props.map is not a function。
父组件:-
componentDidMount = () => {
fetch('api/dashboard/dashboarddata').then(response => response.json()).then((data: Dashboard) => {
this.setState({
category: data.categories,
banners: data.banners,
loading: false
});
});
}
传递道具
{
this.state.loading ? <ContentLoader /> : <div><Category {...this.state.category} /> <Banner {...this.state.banners} /> </div>
}
这是 API 响应后的状态对象:-
但是在子组件中出现错误
子组件:
const Category = (props: brandcategory[]) => {
return (
<div className="section category">
<div className="container-fluid">
<div className="row">
<div className="col-md-12">
<div className="section-title">
<h4 className="title">Select interested categories</h4>
<div className="section-nav">
<a className="primary-btn cta-btn" href="#">View All</a>
</div>
</div>
</div>
<div className="col-md-12">
<div className="row">
<div className="col-md-10">
<div className="products-tabs">
<Slider {...sliderconfig.productSlider} className="products-slick" data-nav="#slick-nav-2">
{
props.map((c: brandcategory) => <CategoryCard key={c.id} {...c} />)
}
</Slider>
</div>
</div>
<div className="col-md-2 text-center">
<div className="btn-container">
<a href="#" className="btn btn-3">Get Started</a>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
)
}
像这样在子组件中接收道具:-
【问题讨论】:
-
props是一个对象,您可能打算映射到您传递的 特定 道具,例如props.banners.map或props.category.map.请包含所有相关代码,您尝试映射props并抛出错误的组件是什么? -
嗨@DrewReese 更新了我的问题,添加了子组件代码。
标签: reactjs typescript