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

391
Visualizações
¿Cómo llamar a la función como valor inicial de la variable de estado?

Tengo una función:

 async function setAllValues(value) { await stableSort(rows, getComparator(order, orderBy)) .slice(page * rowsPerPage, page * rowsPerPage + rowsPerPage) .forEach((row) => { temp = { ...temp, [row.id]: value }; }); console.log('| temp', temp); return temp; }

y una variable de estado:

 const [rowValues, setRowValues] = useState(setAllValues(false));

Ahora quiero que el valor predeterminado de los valores de rowValues sea temp (la variable devuelta por la función), pero cada vez que registro valores de rowValues , se registra como una promesa. Cada vez que llamo a setRowValues , también llama a la función setAllValues (lo sé porque la temperatura está registrada en la función). ¿Cómo logro el resultado deseado?

about 4 years ago · Juan Pablo Isaza
2 Respostas
Responde à pergunta

0

Use un efecto para establecer el valor inicial una vez que la página se haya cargado:

 useEffect(() => { setAllValues(false) .then(setRowValues) }, [])

Mantenga la función fuera del cuerpo del componente para que React no se queje de que no esté en la matriz de dependencia.

Si no necesita que setAllValues sea async , elimine async await y configúrelo como estado inicial con

 const [rowValues, setRowValues] = useState() => setAllValues(false))

Actualmente lo estás ejecutando en cada render.

about 4 years ago · Juan Pablo Isaza Relatório

0

Ahora que ya no usa async/await await, puede simplemente pasar una función a useState , como se explica en "Estado inicial perezoso" :

 const [rowValues, setRowValues] = useState(() => setAllValues(false));

La función solo se llamará la primera vez que se renderice el componente.

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