در React، هندلرهای درونخطی (inline handlers) به ما اجازه میدهند توابع را مستقیماً در JSX اجرا کنیم. این روش بهویژه زمانی مفید است که بخواهیم پارامترهایی را به تابع ارسال کنیم، مانند حذف یک آیتم خاص از لیست.
ابتدا لیست را بهصورت state تعریف میکنیم تا بتوانیم آن را تغییر دهیم:
const [stories, setStories] = React.useState(initialStories);سپس تابعی برای حذف آیتمها تعریف میکنیم:
const handleRemoveStory = (item) => {
const newStories = stories.filter(
(story) => item.objectID !== story.objectID
);
setStories(newStories);
};تابع handleRemoveStory را به کامپوننت List ارسال میکنیم:
<List list={searchedStories} onRemoveItem={handleRemoveStory} />و از آن در کامپوننت Item استفاده میکنیم.
در حالت معمول، ابتدا یک تابع داخلی تعریف میکنیم:
const handleRemoveItem = () => {
onRemoveItem(item);
};و سپس آن را به دکمه متصل میکنیم:
<button onClick={handleRemoveItem}>Dismiss</button>برای سادهتر کردن کد، میتوانیم از هندلر درونخطی استفاده کنیم:
<button onClick={() => onRemoveItem(item)}>Dismiss</button>یا با استفاده از bind:
<button onClick={onRemoveItem.bind(null, item)}>Dismiss</button>هندلرهای درونخطی در JSX راهی مؤثر برای اجرای توابع با پارامتر هستند. با استفاده از آنها میتوان کد را سادهتر و خواناتر کرد، بهویژه در مواردی مانند حذف آیتمها از لیست. با این حال، در صورت پیچیدگی منطق، بهتر است از هندلرهای جداگانه استفاده شود.