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

98
Visualizações
onClick ejecutando una función y setState en reaccionar

Estoy atascado con esta función, tengo un onClick que cuando un usuario hace clic en él, tiene que realizar dos cosas en función de la declaración If, una función y un estado, pero no parece funcionar:

en mi código, quiero la fila cuando no está deshabilitada para hacer "doScore" y "rolling: true", pero no sé cómo escribirlo para que funcione

 function RuleRow({ doScore, name, score, description, rolling }) { const disabled = score !== undefined; return ( <tr className={`RuleRow RuleRow-${disabled ? "disabled" : "active"}`} onClick={disabled ? null : doScore} > <td className="RuleRow-name">{name}</td> <td className="RuleRow-score">{disabled ? score : description}</td> </tr > ); }
about 4 years ago · Juan Pablo Isaza
3 Respostas
Responde à pergunta

0

  1. especifique por favor qué es el apoyo rolling (qué valores se pueden pasar como rolling ) y cómo debería impactar en el componente RuleRow . Por ahora no veo ninguna mención del componente interior rolling .
  2. Como puede ver en el fragmento a continuación, su función doScore se ejecutará en onClick si la score no es estrictamente igual a undefined . Entonces, o score es igual a undefined , o doScore es una función no válida o no funciona en absoluto. Así que supongo que hay algo con doScore . Proporcione por favor lo que pasa en este apoyo.
  3. Si desea actualizar el estado del componente que es principal del componente RuleRow . Debe escribir algo como const [score, setScore] = useState('initial score') . Pegue setScore en RuleRow como accesorio. Y luego, dentro RuleRow escribe onClick={disabled ? null : () => setScore('anything what you want')} . la score dentro del componente principal se actualizará y RuleRow se volverá a representar.

 function App() { const score = undefined; const disabled = score !== undefined; console.log('value of disabled id ', disabled); return ( <table className="App"> <tr onClick={disabled ? null : () => console.log("clicked")}>Hello, click me!</tr> </table> ); } const rootElement = document.getElementById("root"); ReactDOM.render( <App />, rootElement );
 <script src="https://cdnjs.cloudflare.com/ajax/libs/react/16.6.3/umd/react.production.min.js"></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/react-dom/16.6.3/umd/react-dom.production.min.js"></script> <div id="root"></div>

about 4 years ago · Juan Pablo Isaza Relatório

0

function RuleRow({ doScore, name, score, description, rolling }) { const disabled = score !== undefined; const handleClick = () => { if (score !== undefined && rolling) { // do something } else { doScore(); } }; return ( <tr className={`RuleRow RuleRow-${disabled ? "disabled" : "active"}`} onClick={handleClick} > <td className="RuleRow-name">{name}</td> <td className="RuleRow-score">{disabled ? score : description}</td> </tr > ); }
about 4 years ago · Juan Pablo Isaza Relatório

0

Esta no es la solución más limpia, pero podría usar una función de flecha que tiene un valor nulo si está deshabilitada o un cuerpo de función que llame a dos funciones:

 onClick={disabled ? null : (evt) => { doScore(evt); this.setState({ rolling: true }); }}

La forma recomendada de hacerlo sería crear una función personalizada que llame a ambas funciones o simplemente establecer el estado rolling: true en la función doScore si es posible.

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