Ich habe Benutzer und Orte als zwei verschiedene Datenbanken, wo jeder Benutzer hat Orte.Richtiger Weg zum Abrufen von Daten - Reagieren
Ich habe BasicInfo
Komponente wo zu einer Zeit 1 Ort des Benutzers geladen werden muss.
ComponentWillMount
von BasicInfo
componentWillMount() {
this.props.dispatch(fetchUser())
this.props.dispatch(fetchPlaces(1))
}
Ich brauche in fetchPlaces
Benutzer-ID zu übergeben, wie der jetzt bin ich hartzucodieren, aber wie mache ich mit den Ergebnissen der fetchUser? Sollte ich in componentWillReceiveProps(nextProps)
tun? Oder gibt es einen anderen Weg?
componenetWillReceiveProps
macht Sinn, aber ich frage mich, was ist, wenn es eine Kette von Ereignissen ist? Kann abhängig von der Orts-ID sein, wenn ich andere Daten holen muss.
Aktionen:
export function fetchPlaces(user_id) {
return function(dispatch) {
axios.get("/getPlaces?user_id=" + user_id)
.then((response) => {
console.log(response);
dispatch({type: "FETCH_PLACES_FULFILLED", payload: response.data})
})
.catch((err) => {
dispatch({type: "FETCH_PLACES_REJECTED", payload: err})
})
}
}
export function fetchPlace(place_id) {
return function(dispatch) {
axios.get("/getPlace?place_id=" + place_id)
.then((response) => {
console.log(response);
dispatch({type: "FETCH_PLACES_FULFILLED", payload: response.data})
})
.catch((err) => {
dispatch({type: "FETCH_PLACES_REJECTED", payload: err})
})
}
}
Danke Jeff. Ich glaube also, dass es keine Möglichkeiten gibt, Daten von ComponentWillMount weiterzugeben, weil sie keine richtigen Requisiten erhalten. –
Aber in diesem Fall, jedes Mal, wenn ich Benutzer bekommen muss, Orte und Ort richtig? –
Ihre Requisiten sind in componentWillMount() verfügbar. Wenn Ihre Komponente beispielsweise eine "userId" -Eigenschaft hat, können Sie sie als this.props.dispatch übergeben (fetchUser (this.props.userId) ... –