Saya baru di React. Saya memiliki array objek yang saya buat dari nilai-nilai Formulir. Ketika saya mencetaknya di konsol, itu terlihat baik-baik saja. tetapi ketika saya mencoba menambahkan array itu ke objek yang berbeda, itu mengubah formatnya dengan cara yang sangat aneh. Berikut kodenya:


const [ingredientes, setIngredientes] = useState([]);

const loadIngredient= (value) => {ingredients.push(value); setIngredients(ingredients);}



const LoadIngredient= () => {
        loadIngredient(JSON.stringify({ingredient: ingredient, cant: parseInt(cantidad,10), unit: unidad}));
        console.log('ingredients loaded: ', ingredients)
    }

const RegistrarProducto = () => {

    alert('Producto registrado: '+ JSON.stringify({
      name: name,
      image: image,
      description: description,
      receta: receta,
      ingredients:ingredients}));
  }

Ini adalah tampilannya:

Pendaftaran produk:

{"name":"Cookies","image":"","description":"The best cookies ever","receta":"this is a test only","ingredients":["{\"ingredient\":\"mantequilla\",\"cant\":100,\"unit\":\"gramos\"}","{\"ingredient\":\"azucar\",\"cant\":300,\"unit\":\"gramos\"}","{\"ingredient\":\"harina\",\"cant\":1,\"unit\":\"tazas\"}"]}

Objek Registrasi Produk

Adakah yang bisa menjelaskan kepada saya mengapa itu terjadi? Terima kasih sebelumnya dan maaf untuk bahasa spanglishnya.

1
Gustavo Jimenez 28 Mei 2020, 21:11

1 menjawab

Jawaban Terbaik

Apa yang Anda lihat adalah format serial JSON, karena Anda menggunakan JSON.stringify() sebelum meneruskan nilai ke loadIngredient

Jika Anda ingin itu menjadi objek di dalam array status Anda, hapus saja penggunaan JSON.stringify

const LoadIngredient= () => {
    loadIngredient({ingredient: ingredient, cant: parseInt(cantidad,10), unit: unidad});
    console.log('ingredients loaded: ', ingredients)
}
1
Shubham Khatri 28 Mei 2020, 18:13