在成功的axios帖子上关闭模式

时间:2019-04-16 10:33:42

标签: javascript reactjs

当您成功完成发布但没有任何进一步的成功时,我已经尝试更改状态。

我的发帖方法

 saveOnClick = () => {
    axios.put('http://localhost:8080/lagbevakning/revision', {
      revisionId: 36,
      subscriptionId: 21549450,
    })
    .then(function (response) {
        alert("You've sucessfully managed to do that")
        /* here i wish to close the modal */

    })
    .catch(function (error) {
      console.log(error)
        alert("something went wrong")
    })
  }

我的状态

  state = {
    open: false /* if true, modal is open */
    }

封闭模态方法

close = () => this.setState({ open: false })

任何有关在成功的axios发布后如何关闭模式的建议,将不胜感激。

2 个答案:

答案 0 :(得分:0)

正如@Quentin所指出的,then中的上下文是错误的。因此,您需要将this的引用保留到单独的变量(或常量)中。

执行以下操作:

saveOnClick = () => {
    const self = this;
    axios.put('http://localhost:8080/lagbevakning/revision', {
      revisionId: 36,
      subscriptionId: 21549450,
    })
    .then(function (response) {
        alert("You've sucessfully managed to do that")
        /* here */ self.close();
        /* here i wish to close the modal */

    })
    .catch(function (error) {
      console.log(error)
        alert("something went wrong")
    })
  }

答案 1 :(得分:0)

使用箭头函数而不是使用函数

进行调用