Javascript 获取数据的正确方法-React

Javascript 获取数据的正确方法-React,javascript,reactjs,Javascript,Reactjs,我把用户和地点作为两个不同的数据库,每个用户都有可能的地点 我有BasicInfo组件,其中一次必须加载用户的一个位置 组件将装入基本信息的 componentWillMount() { this.props.dispatch(fetchUser()) this.props.dispatch(fetchPlaces(1)) } 我需要在fetchPlaces中传递用户id,现在我正在硬编码,但是如何处理fetchUser的结果呢?我应该在组件中执行哪些操作将接收

我把用户和地点作为两个不同的数据库,每个用户都有可能的地点

我有
BasicInfo
组件,其中一次必须加载用户的一个位置

组件将装入
基本信息的

componentWillMount() {
    this.props.dispatch(fetchUser())        
    this.props.dispatch(fetchPlaces(1))
}
我需要在
fetchPlaces
中传递用户id,现在我正在硬编码,但是如何处理fetchUser的结果呢?我应该在
组件中执行哪些操作将接收道具(下一步)
?或者还有其他的方法吗

componenetWillReceiveProps
是有道理的,但我想知道如果它是一系列事件呢?如果我必须获取其他数据,可能取决于位置id

行动:

导出函数fetchPlaces(用户id){
返回功能(调度){
axios.get(“/getPlaces?user\u id=“+user\u id”)
。然后((响应)=>{
控制台日志(响应);
分派({type:“FETCH_PLACES_completed”,有效负载:response.data})
})
.catch((错误)=>{
分派({type:“FETCH\u PLACES\u REJECTED”,有效负载:err})
})
}
}
导出函数fetchPlace(place\u id){
返回功能(调度){
axios.get(“/getPlace?place\u id=“+place\u id”)
。然后((响应)=>{
控制台日志(响应);
分派({type:“FETCH_PLACES_completed”,有效负载:response.data})
})
.catch((错误)=>{
分派({type:“FETCH\u PLACES\u REJECTED”,有效负载:err})
})
}

}
您可以使用thunk或promise中间件。您可以在中找到动机和示例。

您可以使用thunk或promise中间件。您可以在中找到动机和示例。

看起来您已经在使用
redux-thunk
?如果是这样,您可以通过axios.get()调用返回承诺:

…然后您可以这样做(我猜您的
fetchUser
user
可能是什么样子):


看起来您已经在使用
redux-thunk
?如果是这样,您可以通过axios.get()调用返回承诺:

…然后您可以这样做(我猜您的
fetchUser
user
可能是什么样子):


谢谢你,杰夫。所以我相信没有办法从ComponentWillMount传递数据,因为它没有收到任何道具,对吗?但在这种情况下,每次我都要让用户、地点和地点正确?你的道具在ComponentWillMount()中可用。例如,如果组件具有“userId”属性,则可以将其作为this.props.dispatch(fetchUser)(this.props.userId)传递…谢谢Jeff。所以我认为没有办法从ComponentWillMount传递数据,因为它没有收到任何道具,对吗?但在这种情况下,每次我都必须获得正确的用户、位置和位置?您的道具在ComponentWillMount()中可用。例如,如果您的组件具有“userId”属性,您可以将其作为this.props.dispatch传递(fetchUser(this.props.userId)。。。
return axios.get(...);
this.props.dispatch(fetchUser()).then(user => this.props.dispatch(fetchPlaces(user.id)))