¿Cuándo usar el método del ciclo de vida de componentWillReceiveProps?

Soy nuevo en React / Redux y tengo un problema con el estado.

TrajectContainer.jsx

class TrajectContainer extends React.Component {
    constructor(props) {
        super(props);
        this.state = {
            trajects: props.trajects,
            onClick: props.onClick
        };
    }

    componentWillReceiveProps(nextProps) {
        console.log('componentWillReceiveProps', nextProps);
        this.setState(nextProps);
    }

    render() {
        // When the componentWillReceiveProps is not present, the this.state will hold the old state
        console.log('rerender', this.state);
        return (<div className="col-md-6">
            <h2>Trajects</h2>
            <button className="btn btn-primary" onClick={this.state.onClick}>Add new Traject</button>
            {this.state.trajects.map(traject => <Traject traject={traject} key={traject.name}/>)}
        </div>)
    }
}

const mapStateToProps = function (store) {
    console.log('mapToStateProps', store);
    return {
        trajects: store.trajects
    };
};

const mapDispatchToProps = function (dispatch, ownProps) {
    return {
        onClick: function () {
            dispatch(addTraject());
        }
    }
};

export default connect(mapStateToProps, mapDispatchToProps)(TrajectContainer);

Cuando un reductor devuelve un nuevo estado, el componente se volverá a procesar con los nuevos datos.

Sin embargo: si elimino la función componentWillReceiveProps, la función render () tiene el estado anterior.

Verifiqué los datos recibidos en mapStateToProps, y este es un nuevo estado nuevo. Por lo tanto, no entiendo por qué necesito la función componentWillReceiveProps para que la función de procesamiento reciba los nuevos datos.

¿Estoy haciendo algo mal?

Respuestas a la pregunta(5)

Su respuesta a la pregunta