v2.5.2
Giriş yap

State güncelleme index değişimi

polev
380 defa görüntülendi

 let product = products.filter((item) => item.id === items.id);
 
 ///Update function
 
 setProducts([...products.filter(item => item.id !== items.id), product])
 
JavaScript

Bu işlemi yapıyorum state array içerisinde güncelleniyor ancak 0 indexli 1 oluyor 1 olan 0 oluyor. Güncelleme sonrası index değişimini nasıl engelleyebilirim?

Cevap yaz
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
Cevaplar (2)
polev
784 gün önce
 const newArray = products.map((item, i) => {
                if (index === i) {
                    ///Update function
                    
                    return {
                        ...item,
                        [e.target.name]: e.target.value,
                    };
                } else {
                    return item;
                }
            });
            setProducts(newArray);
JavaScript

Bu tipte çözdüm teşekkür ederim

devepdogukan
784 gün önce

Bu metotla ilerlemen biraz sıkıntılı çünkü yeni bir dizi oluşturup devam ediyorsun haliyle dizinin indexleri değişir.
Update işlemini index ile kontrol etmek yerine id ile devam etmeni öneririm. Eğer index şart ise filtrelemek yerine map ile obje içerisine yeni bir field tanımlayarak o field'a göre id alarak indexleri değiştirmemeyi çözebilirsin