代码之家  ›  专栏  ›  技术社区  ›  SkyeBoniwell

将axios.post的响应插入状态

  •  1
  • SkyeBoniwell  · 技术社区  · 6 年前

    我使用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。

    谢谢!

    1 回复  |  直到 6 年前
        1
  •  2
  •   Tholle    6 年前

    你的最后一段听起来很合理。假设您得到了新创建的图形以响应POST请求,您可以将其添加到处于状态的数组中。如果您没有在响应中获得数据,那么您很可能已经在本地拥有了所有可以使用的数据。

    例子

    axios.post(`/api/serveEnemyShips/graphics-files/${shipId}/files`, newFile)
      .then((response) => {
        this.setState(previousState => {
          return { files: [...previousState.files, response.data] };
        });
      });