Estoy tratando de actualizar un componente secundario tan pronto como reciba nuevos accesorios. Sin embargo, se llama a componentWillReceiveProps() en mi componente secundario antes de que los accesorios se hayan actualizado. Después de leer este artículo , entiendo por qué, pero no me explica cómo resolver mi problema.
¿Cómo llamo al componentWillReceiveProps() después de que los accesorios se hayan actualizado?
En este momento, estoy haciendo trampa al permitir que se agote el tiempo de espera de la actualización real, pero realmente no me gusta esta solución.
componentWillReceiveProps(){ var timeOut = setTimeout(() => this.loadPosts(), 100) },¡Gracias por adelantado!
¿Es necesario llamar a componentWillReceiveProps después de que se hayan actualizado los accesorios? ¿O puedes usar el argumento nextProps ?
P.ej. si reescribes como:
componentWillReceiveProps(nextProps){ this.loadPosts(nextProps) }, y luego, por supuesto, también reescriba la firma de loadPosts para permitir pasar accesorios manualmente:
loadPosts(props = this.props){ // do something with props ... }Utilice componentDidUpdate(prevProps, prevState) . Cuando se llama, se pasan dos argumentos: prevProps y prevState . Este es el inverso de componentWillUpdate . Los valores pasados son los valores que eran, y this.props y this.state son los valores actuales.