reactjs - 使用 ReactJS 选择单个下拉列表时获取多个值
问题描述
我的目标是在选择下拉列表时检索多个值,例如:id、价格和期限。
现在我可以在单击下拉列表时获得一个值,这是我的示例代码。
const [value, setValue] = React.useState("");
const packageList = [
{
id: 1,
name: "Premium 1 Year",
price: "100",
term: 2
},
{
id: 2,
name: "Premium 2 Year",
price: "150",
term: 2
},
{
id: 3,
name: "Premium 3 Year",
price: "300",
term: 2
}
];
const _onSubmit = React.useCallback(
() => {
console.log("value", value);
}, [value]
)
<FormControl fullWidth className={classes.selectFormControl}>
<Select
value={value}
inputProps={{
value: value,
name: "package-option",
id: "packageOption",
onChange: event => {
setValue({
value: event.target.value
});
}
}}
>
{packageList.map(({ id, name }) => {
return (
<MenuItem
classes={{
root: classes.selectMenuItem,
selected: classes.selectMenuItemSelected
}}
value={id}
>
{name}
</MenuItem>
);
})}
</Select>
</FormControl>
<Button color="primary" fullWidth onClick={_onSubmit}>
Submit
</Button>
我期望的是,每当用户从下拉列表中选择一个选项时,它都会显示如下:
id: 1,
price: "100",
term: 2
解决方案
您可以使用所有三个值 id、price 和 term 作为对象并将其传递给 option 的 value 属性
const [value, setValue] = React.useState({
name: 'mango',
id: 1,
price: 2000
});
<select value={value.name} onChange={this.handleChange}>
<option value={{name:'papaya', id:2, price:2500 }}>papaya</option>
<option value={{name:'lime', id:3, price:1500 }}>Lime</option>
</select>
推荐阅读
- xamarin - 如何检索联系人图像 Xamarin.Forms
- java - 如何在 Sonar Qube 7.8 中导入 google java checkstyle?
- javascript - 如何在 React-Native 中设置 Editor Js?
- c# - 将 CMake 源目录链接到 Visual Studio 项目
- kubernetes - Kubernetes 与 Windows 容器的自动缩放虚拟机
- javascript - Sequelize - 错误:getaddrinfo ENOTFOUND(在一个非常好的地址上)
- wordpress - Wordpress:普通的永久链接停止工作
- typescript - 如何删除重复类型并避免以 never 结束?
- angular - Angular中的菜单“注销”
- python - 带有 if 语句的 Lambda 函数 [True or False 输出]