我有这些复选框,它们通过ID来控制状态,但是由于使用状态不受初始控制,因此我收到了使用不受控制的组件的错误消息。我正在尝试根据未知值呈现状态。
我正在尝试做这样的事情
我正在尝试动态设置初始状态
const [deliveredBoxes, setDelivered] = useState({
orders.map((order, i) => {
[order.transactionID]: order.orderDelivered
})
});
解析错误:意外的令牌,预期为“,”
这是我想出的,尽管仍未设置初始状态
const [deliveredBoxes, setDelivered] = useState([]);
useEffect(() => {
orders.map((order, i) => {
setDelivered({
...deliveredBoxes,
[order.transactionID]: order.orderDelivered
});
});
}, []);
答案 0 :(得分:0)
您必须像下面那样更新代码。
解决方案1::只需在(
函数中添加map
。
const [deliveredBoxes, setDelivered] = useState({
orders.map((order, i) => (
{
[order.transactionID]: order.orderDelivered
}
));
});
解决方案2:添加{
并在object
函数中返回map
。
const [deliveredBoxes, setDelivered] = useState({
orders.map((order, i) => {
return {
[order.transactionID]: order.orderDelivered
}
})
});
希望这对您有帮助!
答案 1 :(得分:0)
我认为您需要使用另一个钩子useEffect。 无论是否有效,请尝试此操作。
const [deliveredBoxes, setDelivered] = useState([]);
useEffect(()=>{
orders.map((order, i) => {
[order.transactionID]: order.orderDelivered
}
setDelivered(orders);
, [])