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
Tekrar dediğim gibi state güncellenmiyorsa ve güncellemeye çalıştığın bir data obje ise bunu direkt olarak vermemelisin. Yeni bir obje olarak verip set etmelisin.
setFilterState({...values})
Böyle çalışacaktır diye düşünüyorum. Eğer farklı bir yol izlemek istersen useEffect ile state'ın değişip değişmediğini debuglayabilirsin
Burdaki ilk hatan şu ; Javascript bir objeyi veya array'i (non-primitive) değeriyle değil ram'deki referans'ı ile kontrol eder.
Yani basit ile anlatmak gerekirse
console.log({} === {}) //false
console.log('esit' === 'esit') //true
Bu durum state'i güncellerken sık karşılaşacağın bir durumdur. React state'ini güncellerken primitive değerlerde (string,number) direkt olarak değerine bakar. 1 !== 1 mi değil mi değilse renderla
Non-primitive değerlerde ise yukarıda bahsettiğim olay ile karşılaşıyor. Bu durumda değişken ne ise yeniden tanımlayıp referans'ının değiştiğini react'a bildirmen gerekli ki değiştiğini anlasın ve renderlasın.
setFilterState({...values})
Yukarıda yeni bir obje oluşturduk ve değerlerini values'in değerleriyle doldurduk. Artık react filterState ' in değiştiğini biliyor çünkü yeni bir referans ile tanımlandı.
Web'de hiçbir şeyi gizleyemezsin. Her şey manipüle edilebilir ve görüntülenebilir. Sadece okunabilirliğini azaltarak bir tık güvenli hale getirebilirsin.Onun içinde minified işlemine sokabilirsin
Şimdi buradaki sorunun şu sen current classını hangi route'da isen ona vermen gerek.Yani sen blog sayfasına gittiğinde bu sayfa blogda ise current classını ekle demen gerekiyor
<li class="yns <?=$ayarcek['site_url'] === 'blog' ? 'current' : '' ?>">
<a href="<?=$ayarcek['ayar_siteurl'];?>">Blog</a>
</li>
Bunu bütün routelar için yapman. Ister js ister php o sana kalmış
Oluşturduğun saatlere tıklanma eventini dinleyerek direkt ajax yaptırtabilirsin.
$(document.body).on("click",'.user__head input[type='checkbox']',function(){
const value = $(this).val();
<!-- ajax kodun -->
})
Sorunun tam olarak şu ckeditor classını vermen tekrardan orayı render etmeyecektir daha doğrusu oranın yeni bir editor alanı olup olmadığını bilmeyecektir.
Ckeditor'a yeni bir editor olduğunu bildirmen gerekli.Hangi versiyonunu kullandığını bilmiyorum ama ben ckeditor5 versiyonu için örneğini atayım versiyonunu araştırarak doğrusu bulabilirsin
ClassicEditor
.create( document.querySelector( '.editor' ) )
.catch( error => {
console.error( error );
} );
Bu kodu append yaptıktan sonra yazman yeterli.
Yani yeni bir editor alanı eklediğimiz için tekrardan orayı bildiriyoruz
Cookie ile user_id tutman çok tutarsız. Session'a atıp oradan okusan daha mantıklı.
Cookie konusunda ısrarcısan manuel bir cookie tanımlayıp erişebiliyor musun kontrol et ve genelde cookieler tanımlandığı an okunamayabiliyor
islem fonksiyonunda ajax ile php sayfana post yapabilirsin.
Eğer dönen sonuçla işlem yapacaksan async veya success ile ilerleyip kullanabilirsin
Mantık olarak iyi ilerlemişsin fakat isim kullanmalarında sıkıntıların var.
Tab-Content adlı attribute yerine data-tab-content yazarak dataset'iyle değerine ulaşabilirsin.
9.satır ve benzeri kısımlar çok basic kalmış tıklanan butonun parentine ilerleyip istediklerine erişebilirsin.
-İsim vs değiştiğinde her bu bahsettiğim şey seni çok uğraştırtacaktır.