我有这些复选框,我正在通过他们的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
});
});
}, []);
块引用类>您必须像下面这样更新代码。
解决方案 1:只需在map
函数中添加(
。
const [deliveredBoxes, setDelivered] = useState({
orders.map((order, i) => (
{
[order.transactionID]: order.orderDelivered
}
));
});
解决方案 2:添加{
并在map
函数中返回object
。
const [deliveredBoxes, setDelivered] = useState({
orders.map((order, i) => {
return {
[order.transactionID]: order.orderDelivered
}
})
});
希望这对您有所帮助!
我认为你需要使用另一个钩子useEffect。 请尝试此操作是否有效。
const [deliveredBoxes, setDelivered] = useState([]);
useEffect(()=>{
orders.map((order, i) => {
[order.transactionID]: order.orderDelivered
}
setDelivered(orders);
, [])