Which of the following is the correct way to pass a function as a prop in React?

4 phương ánCó giải thích

Các phương án trả lời

Chọn một phương án
Lời giảiChọn phương án để mở

Đáp án đúng: "

Lời giải
<Child onClick={
  handleClick
}
/>

". Để truyền hàm làm prop, đặt chính tham chiếu hàm trong ngoặc nhọn, không kèm dấu gọi hàm; Child nhận prop onClick và tự gọi nó khi có sự kiện, chẳng hạn gắn vào nút bên trong. Tên onClick theo quy ước đặt tên prop sự kiện là on cộng tên sự kiện. Cần nói thẳng: "

Lời giải
<Child handleClick={
  handleClick
}
/>

" cũng truyền đúng một hàm, chỉ khác tên prop, và trong Child dùng props.handleClick vẫn chạy; nó không sai về cơ chế, chỉ lệch quy ước đặt tên prop sự kiện mà đáp án này theo. "

Lời giải
<Child onClick={
  handleClick()
}
/>

" sai vì có dấu ngoặc tròn nên handleClick bị gọi ngay mỗi lần cha render, prop nhận giá trị trả về chứ không phải hàm, và nếu hàm đổi state sẽ gây vòng render vô hạn. "

Lời giải
<Child handleClick={
  handleClick()
}
/>

" mắc cùng lỗi gọi hàm ngay khi render, chỉ khác tên prop.

Cùng phần 4

Xuất hiện trong 1 bộ đề