v2.5.2
Giriş yap

State güncelleme index değişimi

polev
320 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])
 

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
Cevaplar (2)
polev
648 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);

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

devepdogukan
648 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