Después de comenzar a trabajar con React.js, parece que props
están destinados a ser estáticos (pasados desde el componente principal), mientras que los state
cambios se basan en eventos. Sin embargo, noté en los documentos una referencia acomponentWillReceiveProps
, que incluye específicamente este ejemplo:
componentWillReceiveProps: function(nextProps) {
this.setState({
likesIncreasing: nextProps.likeCount > this.props.likeCount
});
}
Esto parece implicar que las propiedades PUEDEN cambiar en un componente basado en la comparación de nextProps
to this.props
. ¿Qué me estoy perdiendo? ¿Cómo cambian los accesorios, o me equivoco acerca de dónde se llama esto?
fuente
componentWillReceiveProps
está desactualizado ahora: y reemplazado por una combinación degetDerivedStateFromProps
ycomponentDidUpdate
.ACCESORIOS
ESTADO
Valéry ya proporciona un buen ejemplo.
fuente
Los accesorios pueden cambiar cuando el padre de un componente vuelve a representar el componente con diferentes propiedades. Creo que esto es principalmente una optimización para que no se necesite instanciar ningún componente nuevo.
fuente
Truco para actualizar accesorios si son array:
fuente
Mucho ha cambiado con los ganchos, por ejemplo,
componentWillReceiveProps
convertido enuseEffect
+useRef
( como se muestra en esta otra respuesta SO ), pero los accesorios siguen siendo de solo lectura , por lo que solo el método de la persona que llama debe actualizarlo.fuente
si usa
recompose
, usemapProps
para hacer nuevos accesorios derivados de accesorios entrantesEditar por ejemplo:
fuente