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

340
Visualizações
Obtener TypeError cuando paso una Ref de un componente de función a otro componente de función usando forwardRef en react js,

Quiero pasar la referencia de la aplicación a Foo, App y Foo son componentes de funciones, por lo que estoy usando forwardRef() para deformar Foo, pero aparece el error de advertencia TypeError: Cannot add property current, object is not extensible . Debajo de la identificación de mi código, ¿tengo que cambiar?

 import './App.css'; import React, { useState, Component, useEffect, createRef, useRef, forwardRef } from 'react' import ReactDOM from 'react-dom' const Foo=forwardRef((inputRef)=> { const onClick = () => { inputRef.current.focus() } return ( <div> <input type="text" ref={ inputRef }></input> <button onClick={ onClick }>Focus</button> </div> ) }) function App() { const inputRef = createRef() const clicked = () => { inputRef.current.focus() } return ( <div> <Foo ref={inputRef} /> <button onClick={ clicked }>Click Foo</button> </div> ) } export default App;
about 4 years ago · Juan Pablo Isaza
2 Respostas
Responde à pergunta

0

Defina ref en la función de inicio

 const inputRef = useRef(null);
about 4 years ago · Juan Pablo Isaza Relatório

0

Ref Forwarding recibe dos parámetros props y ref.

 React.forwardRef((props, ref) =>{ return( <button ref={ref}>{props.children}</button> ) };

Aquí está su código editado. He agregado un tipo de referencia que es HTMLInputElement.

 type RefType = HTMLInputElement | null; interface PropsType {} const Foo = forwardRef<RefType, PropsType>((props, ref) => { const onClick = () => { if (ref && "current" in ref) { ref.current?.focus(); } }; return ( <div> <input type="text" ref={ref}></input> <button onClick={onClick}>Focus</button> </div> ); }); function App() { const inputRef = createRef<HTMLInputElement>(); const clicked = () => { inputRef.current?.focus(); }; return ( <div> <Foo ref={inputRef} /> <button onClick={clicked}>Click Foo</button> </div> ); } export default App;
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