Nuestro grupo de especialistas luego de ciertos días de trabajo y de recopilar de información, encontramos la solución, nuestro deseo es que resulte útil para ti en tu trabajo.
Solución:
IntrinsicAttributes e IntrinsicClassAttributes
Interfaces implementado en TypeScript. Ellos influyen Reaccionar y .jsxinteracción con el DOM elementos, mientras se trabaja con Componentes personalizados.
Principio subyacente
Supongamos que tienes
interface BarProps
foo: string;
class Bar extends React.Component
...
Si intentas renderizarlo
render()
return (
);
Obtendrá un error similar; ya que está violando la verificación de tipo de interfaz. El componente debe tener accesorios obligatorios, es decir BarProps
pasó como un argumento aquí.
En su lugar, para que funcione, tendrás que hacer algo como…
render()
return (
);
o puede eliminarlo de la propia definición del Componente.
class Bar extends React.Component<>
...
o hacer el foo
Opcional..
interface BarProps
foo?: string;
La idea es implementar la consistencia.
En su caso, está pasando una propiedad desconocida, es decir. action
que probablemente no se haya definido en su Componente.
Cuando llamas a tu componente como
– esencialmente significa importar todos los accesorios disponibles.
Cuando llamas explícitamente action
apoyo como
arroja el gran error gordo.
Los errores mencionados son bastante notorios. Puede encontrar más información en esta guía de depuración para React y TypeScript que destaca estos errores y comparte la posible solución.
Puede leer más sobre la implementación de IntrinsicAttributes
y IntrinsicClassAttributes
en este repositorio
Al profundizar en el checker.ts de Typescript, es probable que funcione porque no es necesario ejecutar el bloque donde se realiza la asignación a los atributos intrínsecos, ya que no hay JsxAttributes explícitos para comparar para la invocación de ese componente (isComparingJsxAttributes puede ser false). Intente depurar el código fuente de Typescript si realmente necesita averiguar si este es el caso.
Simplemente tome un ejemplo que aquí mecanografiado espera que esté bien que se pase algo solo para ser deconstruido cuando se monte el componente.
Pero aquí mecanografiado toma this.state.action como indefinido o tal vez null porque nunca es seguro que se pase un valor válido.
Incluso si tiene el tipo de accesorio de acciones correcto. todavía no sabe si tiene valor o no, por lo tanto lo ve como que es un objeto vacío y no se puede asignar a la acción.