如何为复选框的值传递 2 个参数?

问题描述 投票:0回答:1

我试图从复选框传递 2 个值,但我无法弄清楚。我想传递 item.SpecBurgerType 和 item.Price 但只能使用复选框值成功传递 item.SpecBurgerType 。有没有办法通过复选框值传递 2 个东西,或者如何让参数起作用?

问题出在这里:

    var price = 0.0;
    const [specOrder, setSpecOrder] = useState();
    function handleChange(p, e) {
        if(e.target.checked) {
            setSpecOrder(e.target.value);
            price = p;
        }
        else if(!e.target.unchecked){
            setSpecOrder("");
            price = 0.0;
        }
    }

    var specBurgerDetails = "";
    specBurgerDetails = specBurgers.map( (item, index) => {
        return(
            <div className="item">
                <h2 key={index}>{item.SpecBurgerType}</h2>
                <p>{item.Protein}</p>
                <p>{item.Toppings}</p>
                <p>{item.Price}</p>
                <input type='checkbox' value={item.SpecBurgerType} onChange={(e) => handleChange(item.price, e)}/>
                <p>{specOrder}</p>
                <p>{price}</p>
            </div>
        )```


You will see that I tried to pass an extra parameter to the handleChange function but this was not working. The value does not update my price var for some reason. Any ideas?
javascript html reactjs
1个回答
0
投票

const [汉堡类型,价格] = e.target.value;

handleChange(item.price, e)}/>

item.SpecBurgerType 和 item.price 组合成一个数组。

如果您需要单独访问这些值,则对象方法可能更方便。如果您将值按原样传递给函数,则数组方法可能会更简单。

© www.soinside.com 2019 - 2024. All rights reserved.