【发布时间】:2020-04-25 20:07:47
【问题描述】:
我在反应中使用 get unique 函数时收到此错误TypeError: items.map is not a function。请任何人都可以帮助我。 谢谢你
import React from 'react';
import Hero from "../components/Hero";
import Banner from "../components/Banner";
import {Link} from 'react-router-dom';
import RoomContainer from "../components/RoomContainer";
const getUnique = (items,value)=>{
return [...new Set(items.map(item => item[value]))];
};
function RoomFilter(rooms) {
const context = useContext(RoomContext);
const { handleChange, type } = context;
//get unique types
let types = getUnique(rooms, 'type');
//add all
types = ['all', ...types];
//map to jsx
types = types.map((item, index) => {
return (
<option value={item} key={index}>
{item}
</option>
);
});
return (
<section className="filter-container">
<Title title="search rooms" />
<form className="filter-form">
<div className="form-group">
<label htmlFor="type">Room Type</label>
<select name="type" id="type" value={type} className="form-control" onChange={handleChange}>{types}</select>
</div>
</form>
</section>
);
}
export default RoomFilter;
【问题讨论】:
-
const getUnique = (items,value)=>{ return [...new Set(items.map(item => (item[value])))]; };函数 RoomFilter(rooms) { const context = useContext(RoomContext); const { handleChange,type,capacity,price,minPrice,maxPrice,minSize,maxSize,breakfast, pets} = context;让类型= getUnique(房间,“类型”);类型= [“所有”,...类型]; //映射到jsx types = types.map((item, index)=>{ return ( ); });这是我的代码
-
这只是意味着
rooms不是一个有效的列表。如果您重新格式化您的代码并显示更多内容,我们将更容易提供帮助。不要将代码粘贴到评论中。 -
感谢您的回复。我已经上传了代码。请看好它
-
我已经上传了我的“RoomFilter”完整代码。请检查一下。
标签: javascript reactjs unique