Return response.data in function inside .then callback |公理
Return response.data in function inside .then callback | Axios
是否可以在 .then
回调中 return 一个函数?
我想做这样的事情:
axios.post('url_api/endpoint')
.then(function(response){
renderAdmissionReponse(){
<div>Success response.data</div>
}
})
稍后在这样的组件中呈现它:“
<div className="row spacer">
{this.renderAdmissionReponse()}
</div>
可以吗?
其实我能理解你的需求,但是你上面的代码是错误的!
你想要的是:使用axios加载数据成功后,数据会在页面上正常渲染。如果是这样,您可以使用以下方式:
constructor(props) {
// ...
this.state = ({
admissionResponse: [],
// your other state variables here
})
}
renderAdmissionReponse = (data) => {
this.setState({
admissionResponse: data,
});
}
// ... You can put this inside `ComponentDidMount()`, then just call the function to setState with returned data
axios.post('url_api/endpoint')
.then((response) => {
this.renderAdmissionReponse(response.data);
})
// ...
render() {
return (
<div className="row spacer">
<div>{this.state.admissionResponse.authorizationId}</div>
<div>{this.state.admissionResponse.authorizationNum}</div>
{this.state.admissionResponse.lineItems.map((line) =>{
return(
<div>{line.id}</div>
<div>{line.lineItemNumber}</div>
)
})}
</div>
);
}
请同时检查您的 response.data 结构然后检索正确的键,上面的代码我只是试图解释正确的反应方式,即如何异步加载数据并在之后在页面上呈现。如有错误请post这里,谢谢
是否可以在 .then
回调中 return 一个函数?
我想做这样的事情:
axios.post('url_api/endpoint')
.then(function(response){
renderAdmissionReponse(){
<div>Success response.data</div>
}
})
稍后在这样的组件中呈现它:“
<div className="row spacer">
{this.renderAdmissionReponse()}
</div>
可以吗?
其实我能理解你的需求,但是你上面的代码是错误的!
你想要的是:使用axios加载数据成功后,数据会在页面上正常渲染。如果是这样,您可以使用以下方式:
constructor(props) {
// ...
this.state = ({
admissionResponse: [],
// your other state variables here
})
}
renderAdmissionReponse = (data) => {
this.setState({
admissionResponse: data,
});
}
// ... You can put this inside `ComponentDidMount()`, then just call the function to setState with returned data
axios.post('url_api/endpoint')
.then((response) => {
this.renderAdmissionReponse(response.data);
})
// ...
render() {
return (
<div className="row spacer">
<div>{this.state.admissionResponse.authorizationId}</div>
<div>{this.state.admissionResponse.authorizationNum}</div>
{this.state.admissionResponse.lineItems.map((line) =>{
return(
<div>{line.id}</div>
<div>{line.lineItemNumber}</div>
)
})}
</div>
);
}
请同时检查您的 response.data 结构然后检索正确的键,上面的代码我只是试图解释正确的反应方式,即如何异步加载数据并在之后在页面上呈现。如有错误请post这里,谢谢