Belgelerde açık bir yol yoktur ve çözümünüz işe yarayacaktır, ancak gerçekten çok zarif değildir. Kendi tercih çözümü kullanmaktır Currying içinde komut bloğunun kendisi.
const handleClick = (parameter) => () => {
// actual function
}
Ve HTML'de
<button on:click={handleClick('parameter1')>
It works...
</button>
Körilere dikkat edin
Yorumlarda belirtildiği gibi, körelmenin kendine özgü tuzakları vardır. Yukarıdaki örnekte en yaygın olanı handleClick('parameter1')
tıklama sırasında değil, oluşturma sırasında tetiklenecek ve ardından tıklatılacak bir işlev döndürülecektir. Bu, bu işlevin bağımsız değişken olarak her zaman 'parametre1'i kullanacağı anlamına gelir .
Bu nedenle, bu yöntemi kullanmak, yalnızca kullanılan parametre bir tür sabitse ve oluşturulduktan sonra değişmeyecekse güvenli olacaktır.
Bu beni başka bir noktaya getirir:
1) Sabit bir parametre kullanılıyorsa, ayrı bir işlev de kullanabilirsiniz
const handleParameter1Click = () => handleClick('parameter1');
2) Değer dinamikse ancak bileşen içinde mevcutsa, bu yine de bağımsız bir işlevle ele alınabilir:
let parameter1;
const handleParameter1Click = () => handleClick(parameter1);
3) Değer dinamikse ancak bileşen tarafından kullanılamıyorsa, bu bir tür kapsama bağlıysa (örneğin: #each bloğunda oluşturulan öğelerin listesi) 'hacky' yaklaşımı daha iyi çalışır. Ancak, bu durumda liste öğelerinin bir bileşen olarak kendilerine sahip olması ve 2. duruma geri dönmenin daha iyi olacağını düşünüyorum.
Sonuç olarak: körleme belirli koşullar altında işe yarayacaktır, ancak nasıl kullanılacağı konusunda çok iyi farkında ve dikkatli olmadığınız sürece önerilmez.