Todavía soy bastante nuevo en React, pero he estado avanzando lentamente y me he encontrado con algo en lo que estoy atascado.
Estoy tratando de construir un componente de "temporizador" en React, y para ser honesto, no sé si lo estoy haciendo bien (o de manera eficiente). En mi código de abajo, me puse el estado para devolver un objeto { currentCount: 10 }
y he estado jugando con componentDidMount
, componentWillUnmount
y render
y sólo puedo obtener el estado de "cuenta atrás" de 10 a 9.
Pregunta de dos partes: ¿Qué me estoy equivocando? Y, ¿hay una forma más eficiente de usar setTimeout (en lugar de usar componentDidMount
& componentWillUnmount
)?
Gracias de antemano.
import React from 'react';
var Clock = React.createClass({
getInitialState: function() {
return { currentCount: 10 };
},
componentDidMount: function() {
this.countdown = setInterval(this.timer, 1000);
},
componentWillUnmount: function() {
clearInterval(this.countdown);
},
timer: function() {
this.setState({ currentCount: 10 });
},
render: function() {
var displayCount = this.state.currentCount--;
return (
<section>
{displayCount}
</section>
);
}
});
module.exports = Clock;
this.timer.bind(this)
esto.El temporizador por sí solo no funcionó
class Clock extends Component
no se enlaza automáticamente. Por lo tanto, depende de cómo esté creando sus componentes si necesita enlazar.
bind(this)
ya no es necesario, reaccionar lo hace por sí solo ahora.