我试图从复选框传递 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?
const [汉堡类型,价格] = e.target.value;
handleChange(item.price, e)}/>
item.SpecBurgerType 和 item.price 组合成一个数组。
如果您需要单独访问这些值,则对象方法可能更方便。如果您将值按原样传递给函数,则数组方法可能会更简单。