reactjs - 如何从 React 的下拉列表中显示多个选定的值
问题描述
我是 React 新手,我想创建一个可以选择多个值的下拉菜单。为此,我使用了 react-select 插件。在我的 React 开发工具中,选定的值正在被存储,但我无法显示所有选定的值。非常感谢任何帮助。TIA
import React, { useState } from "react";
import Select from 'react-select'
const options = [
{ value: 'React', label: 'React' },
{ value: 'Vue', label: 'Vue' },
{ value: 'Angular', label: 'Angular' },
{ value: 'Java', label: 'Java' },
]
const [skills, setSkills] = useState([]);
const handleChange = (skill) => {
setSkills({skill})
console.log("skills", skill);
}
return (
<>
<h2>Please select all your skills</h2>
<form>
<Select
options={options}
onChange={handleChange}
isMulti={true}
value={value}
/>
<button>Next</button>
</form>
</>
)
}
export default UserSkills;
当我评论 isMulti 道具时,我得到了一个选定的值,但我没有得到任何 isMulti 道具。
解决方案
您Select
通过给它一个 来控制组件value
,并且由于您没有value
在handleChange
函数中更新,因此它不会被更新。
您可以改为使用skills
数组value
,它会按预期更新。
const options = [
{ value: "React", label: "React" },
{ value: "Vue", label: "Vue" },
{ value: "Angular", label: "Angular" },
{ value: "Java", label: "Java" }
];
function UserSkills() {
const [skills, setSkills] = useState([]);
const handleChange = (skills) => {
setSkills(skills || []);
};
return (
<>
<h2>Please select all your skills</h2>
<form>
<Select
options={options}
onChange={handleChange}
value={skills}
isMulti
/>
<button>Next</button>
</form>
</>
);
}
export default UserSkills;
推荐阅读
- mysql - 尝试更新不存在的记录时,MySql 不会抛出错误
- json - 使用 mongoimport 将许多 JSON 文件导入 MongoDB
- docker - Kubernetes 无法从 docker hub 存储库中提取图像
- windows - Docker Desktop 混合模式不再起作用
- neo4j - 查找通过 2 个关系连接到至少 2 个相同节点但中间节点不同的节点
- php - 使用 Regex 对文件列表进行排序
- laravel - 为什么它在服务器中冲洗时显示“无法访问此站点”?
- gcc - gcc 是否支持多线程
- spring - 创建 Spring Boot bean 时出错 - “空白的最终字段 em 可能尚未初始化”
- ruby-on-rails - 通过 systemd 运行 Sidekiq 时,日志在哪里?