当我通过web浏览器调用我的API时,我得到了以下结果:
{"statusCode": 200, "body": "\"Cheers from AWS Lambda!\""}然而,我现在正在努力通过axios展示body。你知道我做错了什么吗?
import axios from "axios";
import React, { Component } from "react";
class App extends Component {
state = {
messages: []
};
componentDidMount() {
axios
.get(
"https://12345.execute-api.eu-central-1.amazonaws.com/prod/get-data"
)
.then(response => {
const messages = response.data;
this.setState({ messages });
});
}
render() {
return (
<ul>
{this.messages}
Test
{this.state.messages.map(message => (
<li>{message}</li>
))}
</ul>
);
}
}
export default App;发布于 2019-11-25 13:03:07
以下是几点:
1)将render方法的ul中的this.messages改为this.state.messages,因为this.messages未定义。
2)在使用JSX时,一个好的做法是保持js和html代码尽可能地可区分,因此列表上的映射应该在return语句之外完成。
const listItems = numbers.map((number) =>
<li>{number}</li>
);
return (
<ul>{listItems}</ul>
);3)有关CORS错误以及如何在使用AWS lambda时纠正它的更多信息,请参阅这篇文章,其中包括代码片段:AWS: CORS
https://stackoverflow.com/questions/59016287
复制相似问题