javascript - React 中的多选需要使用什么事件
问题描述
我想通过使用选择菜单(选择标签)选择它们来根据它们的类别过滤电影列表,我可以使用点击事件的按钮来完成它,但是当我想替换它时购买多选将事件更改为 onChange 过滤器不起作用。
你怎么看?
谢谢
//根据类别过滤电影,这个函数是在 App.js 中创建的,它已经作为 props 传递给我的 CategoriesFilter 组件
const filterMovie = (category) => {
const filterMovie = MoviesData.filter((movie)=> movie.category === category);
setMoviesList(filterMovie);
}
// 这是我的组件
const CategoriesFilter = ({categories, filterMovie}) => {
return (
<div>
<select >
{categories.map((category, index)=> {
return (
<option key={index} onChange={()=> filterMovie(category)}>{category}</option>
)
})}
</select>
</div>
)
}
解决方案
有几个选项。
- 您可能可以为每个项目构建一个带有复选框的自定义多选下拉组件。
- 您可以使用第三方 npm 包,例如 react-select。https://www.npmjs.com/package/react-select
我建议你使用react-select
.
您还可以使用具有多个属性的选择标签。但它不会按照你想要的方式工作。
<select name="cars" id="cars" multiple>
<option value="volvo">Volvo</option>
<option value="saab">Saab</option>
<option value="opel">Opel</option>
<option value="audi">Audi</option>
</select>
要选择多个项目,您将拥有ctrl
+click
项目
推荐阅读
- javascript - 如何编写与字谜匹配的函数并将它们放入列表中?
- javascript - 如果我们在输入框中为 value 属性设置了 state,那么当我们在 react 中点击 escape 时,我们如何设置之前的值呢?
- c# - 如何制作 GenericeFunction
用“未知”类型工作? - node.js - 使用 PM2 部署的节点应用程序在错误 Amazon EC2 上具有 100% 的正常运行时间
- sql - 错误:类型“jsonb_array_elements”不存在
- amazon-web-services - IntellIJ 中的 AWS Toolkit 可以与 localstack 一起使用吗?
- visual-studio-code - 如何在树视图 VS 代码扩展中选择多个项目
- javascript - 开发服务器构建的文件与简单构建的文件不同
- c# - 我有两个不同类型的列表,我想要减去
- javascript - Flutter Web中的html文本字段