Tandis que la liaison `ce` pour l'événement onClick sur Réagir composant est de donner `Paramètre 'ce' a implicitement un "tout" type " d'erreur

0

La question

P. S. j'ai essayé l'autre réponse de StackOverflow mais de toute façon cela ne fonctionne pas.

Je suis de liaison this pour le onClick de gestionnaire d'une fonction comme indiqué ci-dessous

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

Mais il me donne Parameter 'this' implicitly has an 'any' type erreur".

J'ai essayé l'attribution de plusieurs types de savoir. tout, nulle,typeof pour this comme

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

Mais il donne pas nécessaire d'erreur. Merci de m'aider à sortir de la question.

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

La meilleure réponse

1

La modification suivante est ce qui a fonctionné pour moi. Au lieu de lier je viens de passer événement normal.

Tout en appelant onClick fonction de gestionnaire utilisé React.MouseEvent<HTMLElement> comme type d'événement

Et en fonction de la définition utilisée '_e' pour supprimer l' param defined but not usederreur. L'ajout d'ici, afin qu'il puisse aider quelqu'un dans le futur.

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

Cela pourrait être dû au contexte. dans le rendu avant de renvoyer simplement faire comme suit; laissez = ce; et d'appeler la fonction à l'aide de qui, au lieu de cela. Il a travaillé pour moi.

2021-11-25 12:07:12

Dans d'autres langues

Cette page est dans d'autres langues

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