Không có cách rõ ràng được đề cập trong tài liệu và giải pháp của bạn sẽ hoạt động nhưng thực sự không thanh lịch lắm. Giải pháp ưa thích của riêng tôi là sử dụng currying trong chính khối script .
const handleClick = (parameter) => () => {
// actual function
}
Và trong HTML
<button on:click={handleClick('parameter1')>
It works...
</button>
Coi chừng cà ri
Như đã đề cập trong các ý kiến, cà ri có những cạm bẫy của nó. Cái phổ biến nhất trong ví dụ trên handleClick('parameter1')
sẽ không được kích hoạt khi nhấp mà thay vào đó là kết xuất, trả về một chức năng lần lượt sẽ được kích hoạt. Điều này có nghĩa là hàm này sẽ luôn sử dụng 'tham số1' làm đối số.
Do đó, sử dụng phương pháp này sẽ chỉ an toàn nếu tham số được sử dụng là một hằng số và sẽ không thay đổi khi được hiển thị.
Điều này sẽ đưa tôi đến một điểm khác:
1) Nếu đó là hằng số được sử dụng một tham số, bạn cũng có thể sử dụng chức năng riêng biệt
const handleParameter1Click = () => handleClick('parameter1');
2) Nếu giá trị là động nhưng có sẵn trong thành phần, điều này vẫn có thể được xử lý bằng chức năng độc lập:
let parameter1;
const handleParameter1Click = () => handleClick(parameter1);
3) Nếu giá trị là động nhưng không có sẵn từ thành phần vì điều này phụ thuộc vào một số loại phạm vi (ví dụ: danh sách các mục được hiển thị trong khối #each), 'hacky' phương pháp sẽ hoạt động tốt hơn. Tuy nhiên tôi nghĩ sẽ tốt hơn nếu trong trường hợp đó có các phần tử danh sách như là một thành phần và quay lại trường hợp # 2
Để kết luận: cà ri sẽ hoạt động trong một số trường hợp nhất định nhưng không được khuyến khích trừ khi bạn nhận thức rất rõ và cẩn thận về cách sử dụng nó.