¿Cómo usar el método settimeout en reaccionar?

2022-07-11 23:44:43

Quiero saber cómo usar el método setTimeout(). Básicamente, quiero hacer clic en el elemento después de unos segundos y luego realizar algo.

Entonces, mi código es el siguiente,

class SomeComponent extends React.PureComponent {
    on_first_render = () => {
        this.somemethod_called();
        setTimeout(() => {
            this.props.handle_click(52, 16);
        },0);
        setTimeout(() => {
            this.props.handle_click(522, 352);
         }, 0)

         setTimeout(() => {
             const input = document.querySelector('input[type=text] 
                           [name=somename]');
             input && input.blur();
         }, 700);

Como se ve en el código anterior, se llama al mismo método handle_click() en dos métodos setTimeout() y después de 7 segundos busco el elemento de entrada en el documento y lo elimino enfócate en él.

Siento que esto es un enfoque torpe y que no es correcto... ¿Podría alguien decirme cómo hacerlo de otra manera que no se repita así?

Gracias.

- someuser2491

Source
zh
Responder


2
  • Tal como están las cosas, tus setTimeouts no están esperando nada; está poniendo en cola tres tiempos de espera que se resolverán después de 0, 0 y 700 ms respectivamente.

    Aunque no estoy muy seguro de lo que busca al final, o si está haciendo las cosas de una manera muy idiomática de React, le sugiero que use async/< z>}^{ y una función auxiliar de "retraso":

    await