folder Tahribat.com Forumları
linefolder Html - CSS - XML - JavaScript - Ajax
linefolder React Useeffect - Query Invalidation Kullanımı Hk.



React Useeffect - Query Invalidation Kullanımı Hk.

  1. KısayolKısayol reportŞikayet pmÖzel Mesaj
    Webci58
    Webci58's avatar
    Kayıt Tarihi: 12/Eylül/2012
    Erkek

    Selam müritler,

    react ile basit bir e-ticaret demosu yazıyorum, ürün detayından ürünü güncelleyip tekrar listeye döndüğümde sayfayı yenilemeden güncel halini göremiyorum, bunun için queryClient.invalidatequeries olayını aşağıdaki gibi kullandığımda aslında istediğim şey oluyor fakat

     useeffect ile kullanmak doğru bir kullanım mı veya başka bir yöntemi var mı? 


    Frontend Dev.
  2. KısayolKısayol reportŞikayet pmÖzel Mesaj
    Cosmic
    Cosmic's avatar
    Kayıt Tarihi: 14/Haziran/2006
    Erkek

    react-query kullanmadım hiç ama. mantık olarak ürünü güncellediğin yerde güncelleme başarılı olduğu durumda products u invalidate etmen gerekmez mi? 

    edit: bu yaptığın şekilde yapınca mantık hatası oluyor yanlış yorumlamadı isem.

    sen ürün liste sayfasını açtığında isteğin atılıyor. istek atıldıktan sonra cevap gelince data değişkenin değişiyor ve data değişkeni değişince useeffect çalışıyor ve admin:products invalidate oluyor. aslında şu an her sayfaya döndüğünde otomatik tekrar istek atılıyor gibi. senin dediğim gibi güncelleme, ekleme, silme işlemleri başarılı olduktan sonra invalidate işlemini yapman gerekiyor. Bu şekilde düzenleme vs yapılmadan da listeye geri dönünce tekrar istek atıyordur

    Cosmic tarafından 19/Kas/22 23:11 tarihinde düzenlenmiştir

    Bittik biz bittik
  3. KısayolKısayol reportŞikayet pmÖzel Mesaj
    Webci58
    Webci58's avatar
    Kayıt Tarihi: 12/Eylül/2012
    Erkek
    Cosmic bunu yazdı

    react-query kullanmadım hiç ama. mantık olarak ürünü güncellediğin yerde güncelleme başarılı olduğu durumda products u invalidate etmen gerekmez mi? 

    edit: bu yaptığın şekilde yapınca mantık hatası oluyor yanlış yorumlamadı isem.

    sen ürün liste sayfasını açtığında isteğin atılıyor. istek atıldıktan sonra cevap gelince data değişkenin değişiyor ve data değişkeni değişince useeffect çalışıyor ve admin:products invalidate oluyor. aslında şu an her sayfaya döndüğünde otomatik tekrar istek atılıyor gibi. senin dediğim gibi güncelleme, ekleme, silme işlemleri başarılı olduktan sonra invalidate işlemini yapman gerekiyor. Bu şekilde düzenleme vs yapılmadan da listeye geri dönünce tekrar istek atıyordur

    evet, örneğin liste sayfasında silme işleminde aşağıdaki gibi yaptığımda direkt liste güncelleniyor

    const deleteMutation = useMutation(deleteProduct, {
    onSuccess: () => queryClient.invalidatequeries("admin:products"),
    });

    fakat detay sayfasında ürünü güncelleyip tekrar listeye döndüğümde güncel halini göremiyorum, bu şekilde eklediğimde de sanırım inactive durumda olduğu için invalidate yapmıyor

    useeffect ile kullanmak bana da yanlış geliyor


    Frontend Dev.
  4. KısayolKısayol reportŞikayet pmÖzel Mesaj
    Zfr321
    Zfr321's avatar
    Kayıt Tarihi: 27/Şubat/2011
    Erkek

    Selam hocam, açıkcası işlemi ve sorunu çok fazla anlamadım, ama bildiğim kadarıyla nasıl çalışması gerektiğini özetlemeye çalışayım. Örnek bir tane product listen var ve bu product listesini bir list-page'de gösteriyorsun. Daha sonra herhangi bir productta bir şeyler değiştiğinde liste sayfasında bunun anlık olarak değişmesini kullandığın teknolojinin doğası gereği bekliyorsun diye anlıyorum.

    Bunun için react-redux kullanıp store dosyasında bir tane product list oluşturabilirsin. Product listesini gösterdiğinde yer de ilgili requesti atıp store dosyasında oluşturduğun state'i değiştirebilirsin. Daha sonra herhangi bir componente bu state'i değiştirdiğinde ilgili yerlerde updatei görmen gerekir. useeffect kullanımı ile ilgili bildiğim kadarıyla component trigger edildiğinde use-effect her defasında çalışıyor, ama sen zaten rootta oluşturduğun store içerisinde bir state değiştirdiğinde ilgili viewda bu değişikliği otomatik görüp güncellemesi gerekir. Initial bir requesti useeffecte kullanmanın bir yanlışı yok bence.

  5. KısayolKısayol reportŞikayet pmÖzel Mesaj
    Cosmic
    Cosmic's avatar
    Kayıt Tarihi: 14/Haziran/2006
    Erkek

    updateProduct un nasıl bişi?

    updateProduct ın dönüşünü beklemeden invalidate çalışıyor olabilir mi? "bu şekilde eklediğimde de sanırım inactive durumda olduğu için invalidate yapmıyor"       bu dediğinin çok oluru yok. her daim ekranda aktif olmasını beklemek pek mantıklı değil.

    bi updateProduct dönüşünden sonra düzgünce çalışıyor mu bi onu kontrol edebilirsin. settimeout koy bi 5 saniye sonra invalidate çalışsın. bi test et bakalım öyle


    Bittik biz bittik
  6. KısayolKısayol reportŞikayet pmÖzel Mesaj
    Webci58
    Webci58's avatar
    Kayıt Tarihi: 12/Eylül/2012
    Erkek
    Zfr321 bunu yazdı

    Selam hocam, açıkcası işlemi ve sorunu çok fazla anlamadım, ama bildiğim kadarıyla nasıl çalışması gerektiğini özetlemeye çalışayım. Örnek bir tane product listen var ve bu product listesini bir list-page'de gösteriyorsun. Daha sonra herhangi bir productta bir şeyler değiştiğinde liste sayfasında bunun anlık olarak değişmesini kullandığın teknolojinin doğası gereği bekliyorsun diye anlıyorum.

    Bunun için react-redux kullanıp store dosyasında bir tane product list oluşturabilirsin. Product listesini gösterdiğinde yer de ilgili requesti atıp store dosyasında oluşturduğun state'i değiştirebilirsin. Daha sonra herhangi bir componente bu state'i değiştirdiğinde ilgili yerlerde updatei görmen gerekir. useeffect kullanımı ile ilgili bildiğim kadarıyla component trigger edildiğinde use-effect her defasında çalışıyor, ama sen zaten rootta oluşturduğun store içerisinde bir state değiştirdiğinde ilgili viewda bu değişikliği otomatik görüp güncellemesi gerekir. Initial bir requesti useeffecte kullanmanın bir yanlışı yok bence.

    hocam teşekkürler bunu da mutlaka kullanacağım

    Cosmic bunu yazdı

    updateProduct un nasıl bişi?

    updateProduct ın dönüşünü beklemeden invalidate çalışıyor olabilir mi? "bu şekilde eklediğimde de sanırım inactive durumda olduğu için invalidate yapmıyor"       bu dediğinin çok oluru yok. her daim ekranda aktif olmasını beklemek pek mantıklı değil.

    bi updateProduct dönüşünden sonra düzgünce çalışıyor mu bi onu kontrol edebilirsin. settimeout koy bi 5 saniye sonra invalidate çalışsın. bi test et bakalım öyle

    denedim yine olmadı garip bir şekilde tetiklenmiyor, ben de removeQueries kullandım ürün güncellendiyse silip tekrar oluşturuyor, bu şekilde de işimi gördü teşekkür ederim

    queryClient.removeQueries('admin:products')

     


    Frontend Dev.
Toplam Hit: 1187 Toplam Mesaj: 6
invalidatequeries useeffect react