Creé una función de tiempo de espera durante 3 segundos y después de ese tiempo se supone que debe mostrar el HTML. Estoy siguiendo la documentación oficial para hacer esto y el código es como en la documentación. ¿Alguien ha tenido un problema similar?
render() { return ( <div> {this.state.activePage === 'Home' ? setTimeout(function () { <p>Hello World</p> }, 3000) : null} </div> ) }No debe escribir código como ese en reaccionar. El setTimeout devuelve:
El timeoutID devuelto es un valor entero positivo que identifica el temporizador creado por la llamada a setTimeout(). T
y no el JSX que devolvió de la devolución de llamada. Pero incluso si devolvió de forma asíncrona el JSX que devolvió de la devolución de llamada, no verá el nuevo contenido en la pantalla. Para cambiar la interfaz de usuario en reaccionar, debe cambiar una variable de estado usando setState , lo que provocará un renderizado. Además, render no es el lugar para llamar a setState . Puede llamar a setState en useEffect por ejemplo.
No es posible devolver un valor de la función pasada a setTimeout.
Aquí hay dos opciones que podrías probar
Además, ¿podría proporcionar el documento al que se refiere para este código, para que podamos profundizar más en el problema?