Mentre l'associazione `questo` per evento onClick Reagire componente dare `Parametro 'questo' ha implicitamente un 'qualsiasi' tipo` di errore

0

Domanda

P. S. ho provato l'altra risposta da StackOverflow, ma in qualche modo non ha funzionato.

Sono vincolanti this onClick funzione di gestore, come indicato di seguito

  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 })}
  />

Ma è per me Parameter 'this' implicitly has an 'any' type errore`.

Ho provato l'assegnazione di più tipi di viz. qualsiasi, nulla typeof per this come

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

Ma dà non richiesta tipo di errore. Si prega di aiutare con il problema.

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

Migliore risposta

1

La seguente modifica è quello che ha funzionato per me. Invece di associare ho appena superato evento normale.

Durante la chiamata onClick funzione del gestore utilizzato React.MouseEvent<HTMLElement> come tipo di evento

E in funzione di definizione '_e' di sopprimere l' param defined but not usederrore. L'aggiunta di qui in modo che potrebbe essere di aiuto a qualcuno in futuro.

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

Questo potrebbe essere dovuto al contesto. nel rendering prima di tornare basta fare come segue; lasciate che = questo; e chiamare la funzione risorse che, invece di questo. Ha funzionato per me.

2021-11-25 12:07:12

In altre lingue

Questa pagina è in altre lingue

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