Ich arbeite an einer UserProfile Container-Komponente in reagieren, die einige Daten nach dem Abrufen von einem Server anzeigt.Dipatching einer Aktion vor MapStateToProps in React Redux
Dies ist die Komponente:
import React from 'react';
import {connect} from 'react-redux';
import PersonalInformationView from './PersonalInformationView';
import * as selectors from '../../../reducers';
class PersonalInformationViewContainer extends React.Component{
constructor(props, context){
super(props, context);
}
render(){
return (
<PersonalInformationView userProfile={this.props.userProfile}/>
);
}
}
const mapStateToProps = (state, ownProps) => {
return {
user: selectors.getUser(state),
userProfile: selectors.getUserProfile(state)
};
};
const mapDispatchToProps =() =>{
return {
};
};
export default connect(mapStateToProps, mapDispatchToProps)(PersonalInformationViewContainer);
Das Problem Im ist, dass ich die Aktion FETCH_USER_PROFILE_STARTED
dipatch benötigen, die eine Saga ruft und bringt die Daten. Dies muss getan werden, bevor der Selektor getUserProfile
aufgerufen wird, weil ich mit dem obigen Code ein undefiniertes Ergebnis erhalte.
Was ist der beste Weg, um sicherzustellen, dass ich die Daten abgerufen habe, so dass das props.userProfile in meiner Komponente nicht definiert ist?
Vielen Dank für Ihre Antwort. Nur noch eine Frage. Wo soll ich den Versand zum Abrufen des Benutzerprofils aufrufen? –
Sie könnten zum Beispiel 'componentDidMount' verwenden, aber es hängt von Ihren Bedürfnissen ab. – Jalil