-2

Im getting this error for the code below:

Uncaught TypeError: Cannot read properties of undefined (reading '0')

I tried to use optional chaining but it's not working...

const [deliveredOrders, setDeliveredOrders] = useState([]);

useEffect(() => {
  const getDeliveredOrders = async () => {
    const res = await axios.get(
      `/api/orders`);
    setDeliveredOrders(res.data);
  };
  getDeliveredOrders();
}, []);

console.log(deliveredOrders?.delivered[0]?.updatedAt);

zuZuu
  • 87
  • 1
  • 8
  • `deliveredOrders` is an array. Arrays are non-nullish, so the chain is not entered into when you do `deliveredOrders?.`. But then, it's an array, not a plain object - so it doesn't have a `delivered` property. `someArray.` is almost always a mistake unless `somePropertyName` is `length` or a whole number. – CertainPerformance Aug 28 '22 at 22:03

1 Answers1

3

Because you optional-chained wrong properties, it's delivered which is undefined

It should be:

deliveredOrders?.delivered?.[0]?.updatedAt
Konrad
  • 21,590
  • 4
  • 28
  • 64