【发布时间】:2021-03-12 13:15:25
【问题描述】:
我必须对象 sizes 和 newProduct ,我需要使用复选框设置可用大小,它工作正常但是:
当我选中两个框时,状态仅在第一个框更新,然后将 sizes 对象推送到 newProduct 对象时,newProduct 上的状态直到我选中第三个框才更新(只更新第一个框的值)
这是我的代码:
function Products(){
const [sizes, setSizes] = useState({
s: false, m: false, l: false, xl: false, xxl: false, xxxl: false
})
const [newProduct, setNewProduct] = useState({
productType : "", name : "", price : "", photo : "", sizes : sizes
})
const manageSizes = (e) => {
const { name, checked} = e.target
setSizes({...sizes, [name] : checked}) // late (1)
setNewProduct({...newProduct, sizes : sizes}) // late (2)
}
return (
{Object.keys(sizes).map((item, index) => (
<label key={index} htmlFor={item}>{item}
<input
type="checkbox"
checked={sizes[item]}
name={item}
onChange={manageSizes}
/>
</label>
))}
)
}
【问题讨论】:
标签: javascript reactjs checkbox react-hooks