reactjs - TypeError:products.map 不是函数。我该如何解决
问题描述
我看过类似的问题,但还没有找到真正有效的答案。这是我的 GridView 代码:
const GridView = ({ products }) => {
return (
<Wrapper>
<div className="products-container">
{products.map((product) => {
return <Product key={product.id} {...product} />
})}
</div>
</Wrapper>
)
}
这是我的 ProductList 代码:
const ProductList = () => {
const {filtered_products:products} = useFilterContext();
return <GridView products={products}>games list</GridView>
}
这是我的 FilteredContext 代码:
const initialState = {
filtered_products:[],
all_products:[]
}
const FilterContext = React.createContext()
export const FilterProvider = ({ children }) => {
const {products} = useProductsContext();
const[state,dispatch] = useReducer(reducer, initialState)
useEffect(() => {
dispatch({type:LOAD_PRODUCTS, payload:products})
},[products])
return (
<FilterContext.Provider value={{...state}}>
{children}
</FilterContext.Provider>
)
}
解决方案
使用条件渲染,以防出现products
isnull
或undefined
then 您可能会收到此错误。
const GridView = ({ products }) => {
return (
<Wrapper>
<div className="products-container">
{products && products.map((product) => {
return <Product key={product.id} {...product} />
})}
</div>
</Wrapper>
)
}
另外,请确保 products 是一个数组。
推荐阅读
- javascript - 使用 piexifjs 在 jpeg Exif 上添加/修改 gps 坐标
- dart - 如何获取标识符类型 dart-analyzer
- python - Python 和 VBA 之间的通信
- python - 如何将熊猫数据框多索引列移动到 2 行
- powerbi - 如何使用 SELECTEDVALUE 筛选日期
- c# - 如何在 Windows 窗体中分离 UI 线程和进程线程
- python - 使用python显示图像位置在文本文件中的图像
- sql - Timescale DB(PostgreSQL 版本 12)中的查询性能缓慢
- kotlin - 在 kotlin 中过滤范围
- java - spring boot如何读写json或txt文件?