Soy nuevo en la codificación y he pasado mucho tiempo tratando de hacer que esto funcione, pero estoy atascado. Sé que esta es una pregunta muy básica y si se responde en otro lugar, no he podido encontrar las preguntas correctas para buscar esa respuesta.
Esto es del tutorial de reacción: es el temporizador automático que se actualiza automáticamente cada 1000 ms. Me gustaría poder pasar un prop a la llamada a la función <Clock /> para especificar el intervalo que quiero que use esa instancia de objeto específica así: <Clock interval=2000 />
Aquí está el código que proporcionaron:
function FormattedDate(props) { return <h2>It is {props.date.toLocaleTimeString()}.</h2>; } class Clock extends React.Component { constructor(props) { super(props); this.state = {date: new Date()}; } componentDidMount() { this.timerID = setInterval( () => this.tick(), 1000 ); } componentWillUnmount() { clearInterval(this.timerID); } tick() { this.setState({ date: new Date() }); } render() { return ( <div> <FormattedDate date={this.state.date} /> </div> ); } } function App() { return ( <div> <Clock /> <Clock /> <Clock /> </div> ); } ReactDOM.render(<App />, document.getElementById('root'));Esto es lo que he probado:
timer: 5000const a la llamada de funcióncomponentDidMount Sin embargo, esto no funciona porque estoy tratando de usar un prop para actualizar state . ¿Qué se supone que debo hacer en su lugar?
Código fallido: (solo los bits que he probado)
this.state = { date: new Date(), interval: 5000, }; componentDidMount(props){ () => this.tick(), props.timer ); } const timer = { interval: 5000, } ReactDOM.render() <Clock interval={timer.interval}/>, document.getElementById('root') );si quieres pasar el intervalo como accesorio, puedes hacerlo así:
<Clock interval="1000"/>y accede así:
componentDidMount() { this.timerID = setInterval( () => this.tick(), this.props.interval ); } Debe usar this.props para tener acceso a sus accesorios en los componentes de la clase.