【问题标题】:Get Multiple Values When A Single Dropdown Is Selected Using ReactJS使用 ReactJS 选择单个下拉列表时获取多个值
【发布时间】:2020-04-22 10:27:34
【问题描述】:

我的目标是在选择下拉列表时检索多个值,例如: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

【问题讨论】:

    标签: reactjs drop-down-menu material-ui


    【解决方案1】:

    您可以使用所有三个值 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>
    

    【讨论】:

    • 我无法在对象中设置值
    猜你喜欢
    • 1970-01-01
    • 2015-12-30
    • 2020-04-28
    • 2021-12-14
    • 2018-12-16
    • 1970-01-01
    • 2021-12-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多