react中使用fetch获取数据渲染有问题

在showConfirm()函数中删除目录成功后,通过then调用一次getCatalog()函数,第一次删除目录返回true后,页面渲染没有变化。第二次删除成功后,页面上第一次删除的会消失。就是说会返回前一次的状态。有时候又可以删除即消失。

clipboard.png

clipboard.png

clipboard.png

阅读 2.4k
1 个回答

showConfirm() 函数中删除目录成功后(?),通过 then 调用一次 getCatalog() 函数。

.then(() => that.props.cbgetCatalog())
       ^
       |
       |
      函数

或者

.then(that.props.cbgetCatalog)
                             ^
                             |
                             |
                           后面无括号

这才达到你的效果。.then 要传递一个函数,而不是调用函数之后的返回值。

按照你的写法,当发送请求的时候,就已经调用了 that.props.cbgetCatalog 函数,此时的分类还没有删除。

这是 Promise 的一个坑,切记 .then 里面一定要传递函数

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题