【发布时间】:2018-01-21 01:38:49
【问题描述】:
我正在尝试从 dynamo db 中提取一些数据,将其存储在我的本地状态中,然后对其进行处理。我可以提取数据,我认为我可能需要处理异步的东西,所以我使用异步等待
async componentDidMount() {
//aws secret key stuff here
const ddb = new AWS.DynamoDB({ apiVersion: '2012-10-08' });
const res = await ddb.scan(params, (err, data) => {
if (err) {
console.log(err, err.stack);
} else {
console.log(data);
}
});
this.setState({ products: data })
}
我有几个问题。我基本上是想等到扫描完成,这样我就知道数据已经成功拉取,然后我可以设置状态。
首先,linter 抱怨说我不应该在 componentDidMount 中设置状态,那么我应该在哪里设置呢?
其次,在使用数据之前等待某些请求完成的正确方法是什么?
我在this.setState({products: data}) 的地方做了一个console.log(data),它记录了正确的事情。
但是当我尝试像这样迭代我的数据时:
{this.state.products.Items.map((product) => (
我无法读取未定义的地图??
【问题讨论】:
标签: javascript reactjs asynchronous async-await amazon-dynamodb