Нужна помощь с кодом typescript react

Я сам по себе бэкендер на расте и вообще не пишу фронтенд, короче, сама проблема в том, что когда я получаю объект из бэка (отправляется он корректно и вроде как получается тоже), вывожу его в консоль и все выводится корректно, но потом когда я пытаюсь обратится к полям полученного объекта то получаю undefined, вот пример с этой строчки:

console.log('product_data:', product_data, 'price:', price, 'image_url:', image_url);

вывод:

product_data: {"image_url":"скрыл","product_name":"sofa","price":59.99} price: undefined image_url: undefined

компонент:

import React, { useEffect, useState } from "react";
import { ProductCardInterface } from "../../interfaces/ProductCardInterface.ts";
import { getProductDataByName } from "../../services/GetFurnByName.ts";
import { MyLoader } from "../../utils/Loader/MyLoader.tsx";
import { AddToCart } from "../../services/AddToCart.ts";

export const ProductCard: React.FC<{ name: string }> = ({ name }) => {
  const [product_data, set_product_data] = useState<ProductCardInterface | null>(null);
  const [loading, setLoading] = useState(true);
  const [error, setError] = useState<Error | null>(null);

  useEffect(() => {
    (async () => {
      try {
        set_product_data(await getProductDataByName(name));
      } catch (error: unknown) {
        if (error instanceof Error) {
          console.error(`Error fetching furniture data for ${name}: ${error}`);
          setError(error);
        }
      } finally {
        setLoading(false);
      }
    })();
  }, [name]);

  if (loading) {
    return <MyLoader />;
  }

  if (error) {
    return (
      <div className="error_div">
        <div className="loaderClass">
          <MyLoader />
        </div>
        <p className="error_definition" id="error_def">
          Internal Server Error: {error.message}
        </p>
      </div>
    );
  }

  const { image_url, price } = product_data ?? {};

  console.log('product_data:', product_data, 'price:', price, 'image_url:', image_url);

  return (
    <div className="product-card">
      <h3 className="product-name">{name}</h3>
      <img className="product-image" src={image_url} alt={name} />
      <p className="product-price">Price: ${price}</p>
      <button
        className="add-to-cart-button"
        id={`add-${name}-to-cart-button`}
        onClick={() => AddToCart(product_data!)}
      >
        Add to Cart
      </button>
    </div>
  );
};

Интерфейс:

export interface ProductCardInterface {
  image_url: string;
  product_name: string;
  price: number;
}

Функция getProductDataByName:

export const getProductDataByName = async (furnitureName: string) => {
  return fetch(`${URL}/furniture/${furnitureName}_get_data`)
    .then(response => {
      console.log(furnitureName);
      if (!response.ok) throw new Error(`Failed to fetch data for ${furnitureName}. Status: ${response.status}`);
      return response.json();
    })
    .catch(error => {
      console.error(`Error in AddToCartByName: ${error.message}`);
      throw error;
    });
};

Ответы (0 шт):