React Input Veri Sorunu
-
Selam hocalar,
bitirme projem için react ile bir şeyler geliştiriyorum. ürün güncelleme sayfasında api ile verileri input'a çekiyor fakat hiçbir şekilde input'a değer giremiyorum.
yardımcı olabilir misiniz?
video ile gösterdim detayları:
bu da kodlar:
https://jsfiddle.net/ypqhs0Lj/
-
Selamlar,
ilk olarak urunler statein niye array olarak geliyor? urunleri map edip her ürün için form basmışsın o yüzden soruyorum.
bir inputuna baktım oradan açıklayacağım;
<input className="shadow-sm form-control" type="text" name="baslik" onChange={ e => setBaslik(e.target.value) } value={urun.baslik} placeholder="Ürün Başlığı" required />
burada onChange de setBaslik statetine inputa yazılan değeri vermişsin bu tamam. Ancak inputun value propuna bu set ettiğin stateti yazmamışsın. değişiklik bu yüzden olmuyor.
<input className="shadow-sm form-control" type="text" name="baslik" onChange={ e => setBaslik(e.target.value) } value={baslik} placeholder="Ürün Başlığı" required />
kullanımın bu şekilde olmalı. böyle yaptığın zaman da senin apiden gelen değer inputa yazmamış olacak. Onun içinde apiden veriyi çektiğin yerde setBaslik ile apiden gelen değeri statetine yazacaksın.
Ek; Reactta form işlemlerini kütüphanesiz yapmak meşagatli. Ui kit olarak antd güzel kütüphane onun form componenti de güzel. Ben yok komple ui kütüphanesi kullanmak istemiyorum diyorsan form işlemleri için
https://react-hook-form.com şunu kullanabilirsin -
Cosmic bunu yazdı
Selamlar,
ilk olarak urunler statein niye array olarak geliyor? urunleri map edip her ürün için form basmışsın o yüzden soruyorum.
bir inputuna baktım oradan açıklayacağım;
< name="baslik" ="text" /> setBaslik(e.target.value) } value={urun.baslik} placeholder="Ürün Başlığı" required />
burada onChange de setBaslik statetine inputa yazılan değeri vermişsin bu tamam. Ancak inputun value propuna bu set ettiğin stateti yazmamışsın. değişiklik bu yüzden olmuyor.
< name="baslik" ="text" /> setBaslik(e.target.value) } value={baslik} placeholder="Ürün Başlığı" required />
kullanımın bu şekilde olmalı. böyle yaptığın zaman da senin apiden gelen değer inputa yazmamış olacak. Onun içinde apiden veriyi çektiğin yerde setBaslik ile apiden gelen değeri statetine yazacaksın.
Ek; Reactta form işlemlerini kütüphanesiz yapmak meşagatli. Ui kit olarak antd güzel kütüphane onun form componenti de güzel. Ben yok komple ui kütüphanesi kullanmak istemiyorum diyorsan form işlemleri için
https://react-hook-form.com şunu kullanabilirsinteşekkürler hocam nokta atışı cevap oldu. api'den gelen datanın olduğu kısmı aşağıdaki şekilde güncelledim ve sorun çözüldü. kütüphane kullanımı daha önce görmüştüm fakat girmedim nedense :)
}else{setBaslik(data[0].baslik);setFiyat(data[0].fiyat);setAciklama(data[0].aciklama);setKategori(data[0].kategori_id);}