ในขณะที่ถูกเชื่อมโยง`นี้จะ onClick เหตุการณ์ในตอบโต้ส่วนประกอบก็คือให้`พารามิเตอร์'นี้เพ implicitly มี'ไหน'ประเภท`ข้อผิดพลาด

0

คำถาม

พีเอสฉันพยายามอีกคำตอบจาก StackOverflow แต่นั่นมันไม่ได้เรื่องเลย

ฉันไม่ผูกมัดหรอ this ที่ onClick ฟังก์ชันเครื่องมือจัดการที่ให้ด้านล่างนี้

  const handleUpdatePermissionClick = async (user: UserPermission) => {
    try {
      await updateUserPermission(user)
      setShowError(false)
    } catch (e) {
      setShowError(true)
    }
  }

  <MenuItem
    name={ele.name}
    Key={ele.name}
    onClick={handleUpdatePermissionClick.bind(this, { permission: ele, userId })}
  />

แต่มันทำให้ฉัน Parameter 'this' implicitly has an 'any' type เกิดข้อผิดพลาด`.

ฉันพยายามกำลังกำหนดหลายประเภท viz. มีช่องว่าง,typeof ต้อง this เป็

onClick={handleUpdatePermissionClick.bind(this:any, { permission: ele, userId })}

แต่มันทำให้ประเภทไม่ต้องการข้อผิดพลาด ได้โปรดช่วยฉันด้วยเหมือนไม่มีปัญหาอยู่เลยสินะ

reactjs typescript typescript-typings
2021-11-23 17:36:28
2

คำตอบที่ดีที่สุด

1

ที่ติดตามการเปลี่ยนแปลงเป็นสิ่งที่ทำงานสำหรับฉัน แทนที่จะให้พวกฉันเพิ่งผ่านเหตุการณ์ปกติ.

ในขณะที่เรียก onClick เครื่องมือจัดการฟังก์ชันเคย React.MouseEvent<HTMLElement> เป็นเหตุการณ์ประเภท

และฟังก์ชันนิยามใช้'_e'เพื่อใช้ในการยับยั้ง param defined but not usedข้อผิดพลาด เพิ่มมันอยู่ที่นี่ดังนั้นมันอาจช่วยใครบางคนในอนาคต

const handleUpdatePermissionClick = async (_e:React.MouseEvent<HTMLElement>,user: UserPermission) => {
   try {
      await updateUserPermission(user)
      setShowError(false)
   } catch (e) {
      setShowError(true)
   }
}

 <MenuItem
   name={ele.name}
   key={ele.name}
   onClick={(e: React.MouseEvent<HTMLElement>) => {
     handleUpdatePermissionClick(e, { permission: ele, userId })
   }}
 />
2021-11-23 17:48:19
0

นี่อาจจะเนื่องจากคอนเท็กซ์. ในจัดการพานก่อนกลับมาแค่ทำตามที่ตาม; ปล่อยให้มัน=เรื่องนี้ และโทรเรียกฟังก์ชันใช้มันแทนที่จะเป็นเรื่องนี้ มันได้ผลสำหรับฉัน

2021-11-25 12:07:12

ในภาษาอื่นๆ

หน้านี้อยู่ในภาษาอื่นๆ

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................

ดังอยู่ในนี้หมวดหมู่

ดังคำถามอยู่ในนี้หมวดหมู่