ค้นหาเว็บไซต์

javascript - ปัญหาในการจัดการเหตุการณ์คลิกในคอมโพเนนต์เมนูของ Material UI


ฉันได้เพิ่มคอมโพเนนต์เมนูจาก Material UI แบบนี้ -

<Menu
    open={open}
    id={id}
    onClose={handleClose}
    onClick={handleClick}
    anchorEl={anchorEl}
    transformOrigin={{ horizontal: transformOriginRight, vertical: transformOriginTop }}
    anchorOrigin={{ horizontal: anchorOriginRight, vertical: anchorOriginBottom }}
  >
    { items.map(item => (
      <MenuItemMUI key={item.id}>{item.name}</MenuItemMUI>
    ))}

  </Menu>

และ clickHandler ของฉันเป็นแบบนี้ -

const handleClick = (event: React.MouseEvent<HTMLButtonElement>) => {
    setAnchorEl(null);
    console.log(event.target.name);
  };

ภาพหน้าจอของสิ่งที่ได้ทำแล้ว -

ฉันกำลังพยายามที่จะเข้าถึง Logout/โปรไฟล์ของฉันใน handleClick เพื่อที่ฉันจะได้นำทางไปยังหน้าที่เกี่ยวข้อง แต่ไม่พบอะไรเลยในคำสั่ง console มีใครช่วยได้ไหม

คำตอบ #1

เพิ่มเมธอดคลิกไปที่ MenuItemMUI

<MenuItemMUI key={item.id} onClick={() => handleItemClick(item)}>{item.name}</MenuItemMUI>

คำตอบ #2

คุณสามารถตั้งค่าเมธอด onClick สำหรับเพียงรายการออกจากระบบเท่านั้น

แทนที่จะเป็น:

<MenuItemMUI key={item.id}>{item.name}</MenuItemMUI>

คุณสามารถเขียนได้:

<>
  {item.name === 'Logout' && (
    <MenuItemMUI key={item.id} onClick={handleLogout}>{item.name}</MenuItemMUI>
  )}
  {item.name !== 'Logout' && (
    <MenuItemMUI key={item.id}>{item.name}</MenuItemMUI>
  )}
</>

ต้องมีการกำหนด handleLogout ที่ไหนสักแห่งในขอบเขตของคอมโพเนนต์นี้