Soy un estudiante que empezó a estudiar React. Mientras estudio sobre los componentes de la clase, tengo una pregunta. Tengo una pregunta de this.setState dentro de la función click() del código fuente a continuación. 'this.setState' puede obtener un estado que es un parámetro en la función de flecha. ¿Cómo puede 'setState' simplemente obtener el estado anterior? Me pregunto cómo es posible obtenerlo solo con estado, no con este estado. Supongo que está relacionado con la clase React.Component heredada, pero le agradecería que me diera una respuesta precisa.
class Component extends React.Component { state = { count: 0, }; constructor(props) { super(props); this.click = this.click.bind(this); } click() { this.setState((state) => ({ state, ...{ count: state.count + 1 } })); console.log(this.state); } render() { return ( <div> <button onClick={this.click}>click!</button> {this.state.count} {this.props.message} </div> ); } } ReactDOM.render(<Component message='기본값 아니지롱' />, document.querySelector('#root'));Debe usar this.state ya que el estado es una propiedad de su clase y no una variable independiente.
setState puede acceder al estado ya que declara esa variable al comienzo de su función de flecha. también podrías llamarlo plátano. el primer parámetro de la función de flecha se llena con this.state .
El state dentro de la función de callback de llamada de this.setState ya es el estado anterior, que es más preciso que this.state .
Puede cambiar el nombre del parámetro dentro de la devolución de llamada como desee:
this.setState((prev)=>{ prev, ...{ count: prev.count + 1 } }); // This works even better, since the prev here does not equal to this.state and more accuratePara más detalles, puede consultar este enlace
state (en la función anterior) es una referencia al estado del componente en el momento en que se aplica el cambio. No debe ser mutado directamente. En su lugar, los cambios deben representarse mediante la creación de un nuevo objeto basado en la entrada de estado y accesorios.