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

183
Visualizações
¿Alguien puede explicar esta condición en una tarea de reacción?

Tengo esta solución para una tarea de reacción y hay algo que no entendí.

 // React is loaded and is available as React and ReactDOM // imports should NOT be used class Input extends React.PureComponent { render() { let {forwardedRef, ...otherProps} = this.props; return <input {...otherProps} ref={forwardedRef} />; } } const TextInput = React.forwardRef((props, ref) => { return <Input {...props} forwardedRef={ref} /> }); class FocusableInput extends React.Component { ref = React.createRef() render() { return <TextInput ref={this.ref} />; } // When the focused prop is changed from false to true, // and the input is not focused, it should receive focus. // If focused prop is true, the input should receive the focus. // Implement your solution below: componentDidUpdate(prevProps) { if(!prevProps.focused && this.props.focused) this.ref.current.focus(); } componentDidMount() { this.props.focused && this.ref.current.focus(); } } FocusableInput.defaultProps = { focused: false }; const App = (props) => <FocusableInput focused={props.focused} />; document.body.innerHTML = "<div id='root'></div>"; const rootElement = document.getElementById("root"); ReactDOM.render(<App />, rootElement);

En componentDidUpdate la tarea es

 // When the focused prop is changed from false to true, // and the input is not focused, it should receive focus.

Así que prevProps.focused era falso y la negación !prevProps.focused lo hace verdadero.

Y this.props.focused debe ser verdadero para que la condición con el operador lógico && (!prevProps.focused && this.props.focused) pueda ser verdadera.

Pero la tarea dice que no debería ser cierto // and the input is not focused

¿Eso significa que this.props.focused debería ser falso?

¿La condición no sería verdadera con (verdadero && falso)?

¿Alguien puede explicar lo que no estoy viendo?

about 4 years ago · Santiago Trujillo
2 Respostas
Responde à pergunta

0

Nunca verifica si el elemento tiene foco , solo verifica los accesorios.

Esto probablemente debería verse así:

 if(!prevProps.focused && this.props.focused && this.ref.current !== document.activeElement) this.ref.current.focus();

Pero verificar esto parece innecesario ya que enfocar el elemento enfocado no tiene impacto en el rendimiento.

about 4 years ago · Santiago Trujillo Relatório

0

La "entrada no está enfocada" no se trata del valor de la propiedad focused , sino de si el elemento está realmente enfocado en el DOM . Si this.ref.current no está enfocada, entonces this.ref.current.focus() le dará el foco de teclado a this.ref.current pero si this.ref.current ya está enfocada, entonces this.ref.current.focus() no cambiará nada de todos modos.

about 4 years ago · Santiago Trujillo 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