receive react props prevstate getderivedstatefromprops example componentwillreceiveprops componentdidmount component javascript reactjs

javascript - prevstate - React-setState en componentWillReceiveProps



react setstate callback (2)

De acuerdo con este documento de reacción , no se recomienda cambiar los estados dentro de componentWillReceiveProps . El documento lo explica muy claramente.

Y también nos brinda soluciones alternativas para "componentes totalmente controlados" y "componentes no controlados", lea este documento de reacción.

¿Es esto legal?

componentWillReceiveProps: function(nextProps) { if (typeof nextProps.contact != ''undefined'') { this.setState({forename: nextProps.contact.forename}); this.setState({surname: nextProps.contact.surname}); this.setState({phone: nextProps.contact.phone}); this.setState({email: nextProps.contact.email}); } }

Porque no sé cómo llenar mis entradas y todavía puedo permitir que el usuario pueda editar las entradas. Así que se me ocurrió esta solución en lugar de tratar de manipular this.props.

¿Alguna sugerencia?


Su código es legal de acuerdo a la documentación de reacción .

También puede considerar colocar este código dentro del método getInitialState , ya que, de acuerdo con otro documento de reacción, la inicialización desde los accesorios no es un antipatrón.

También puede reemplazar varias llamadas con una setState método setState :

this.setState({forename: nextProps.contact.forename, surname: nextProps.contact.surname, phone: nextProps.contact.phone, email: nextProps.contact.email});