Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

270
Visualizações
useContext Provider en TypeScript

Estoy desarrollando un proyecto donde tengo un Context , y recibí este error al intentar usar el Provider :

 Type '{ children: Element[]; }' is not assignable to type 'IntrinsicAttributes & ReactNode'. Type '{ children: Element[]; }' is missing the following properties from type 'ReactPortal': key, type, props

Página principal.tsx

 import { Form } from "../../components/Form"; import { Greet } from "../../components/Greet"; import { UserProvider } from "../../context/UserContext"; const Mainpage: React.FC = () => { return( <div> <UserProvider> // **ERROR HERE !!!** <> <Greet /> <Form /> </> </UserProvider> </div> ) } export default Mainpage;

UserContext.tsx

 import React, { Component, createContext, ReactChild, ReactNode, useState } from "react"; type ContextType={ name?:string, email?:string, submit?: (param?:any, param2?:any)=> void } export const UserContext = createContext<ContextType | null> (null); export const UserProvider: React.FC<React.ReactNode> = (children) => { const [name, setName] = useState('') const [email, setEmail] = useState('') const onSubmit = (name:string, email:string ) => { console.log('Submit App: ' + name, email) setName(name) setEmail(email) } return( <UserContext.Provider value={{name, email, submit: onSubmit}}> {children} </UserContext.Provider> ) }
about 4 years ago · Juan Pablo Isaza
2 Respostas
Responde à pergunta

0

UserProvider se define como un componente de React y acepta solo un UserProvider: React.FC<React.ReactNode>

Puede envolver <Greet /> y <Form/> dentro de un fragmento

 <> <Greet/> <Form/> </>
 .... const Mainpage: React.FC = () => { return( <div> <UserProvider> // **ERROR HERE !!!** <> <Greet/> <Form/> </> </UserProvider> </div> ) } export default Mainpage;

ACTUALIZAR :

el problema esta aqui

 .... export const UserProvider: React.FC = (children) => { // << look at children ....

children es un accesorio y debe desestructurarse ({ children }) o usarse desde props.children en su caso children.children

 ... export const UserProvider: React.FC = ({ children }) => { ...
about 4 years ago · Juan Pablo Isaza Relatório

0

Al configurar explícitamente React.ReactNode como accesorios de su componente, está diciendo que solo habrá un nodo como hijo y actualmente tiene 2 nodos como hijos.

Cambia esto:

 export const UserProvider: React.FC<React.ReactNode> = () => {...}

A esto:

 export const UserProvider: React.FC = () => {...}

Una opción alternativa es envolver a los children en un React Fragment como este:

 <UserProvider> // **ERROR HERE !!!** <> <Greet /> <Form /> </> </UserProvider>
about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda