我使用axios连接到我的api并获得了一堆用于运输的图形文件。像这样:
axios.get(`/api/serveEnemyShips/graphics-files/${shipId}/files`)
.then((response) => {
this.setState({ files: response.data })
})
这有效并设置文件的状态。
如果用户要上传自定义图形,添加到此状态的最佳方法是什么?
起初我只是使用axios.post上传飞船图形,然后针对我的api执行另一个axios.get,但这似乎很昂贵。
我希望我可以上传图形,然后将响应数据(来自axios帖子)插入到我的状态中,而不必在上传后再执行另一个axios.get。
谢谢!
答案 0 :(得分:2)
您的最后一段听起来很合理。授予您响应帖子请求的新创建图形的权限,您可以将其添加到处于状态的数组中。如果您没有在响应中获取数据,则很可能已经在本地拥有了所有数据,可以使用。
示例
axios.post(`/api/serveEnemyShips/graphics-files/${shipId}/files`, newFile)
.then((response) => {
this.setState(previousState => {
return { files: [...previousState.files, response.data] };
});
});