react异步更新组件

发布于 2022-09-11 17:24:51 字数 1043 浏览 12 评论 0

react的一个项目,删除照片的功能,在点击删除照片后,需要更新组件,重新获取列表的值,两个函数体请求携带的id不一样,请求都是异步函数,如果根据返回的值再发起第二个请求,id值不同,请教各位大佬,这个是删除照片的函数
handleDelete = id => {

const { dispatch } = this.props;
dispatch({
  type: 'slot/delPhoto',
  id,
});
//this.forceUpdate(); 
setTimeout(this.loadData(),2000) 

};

这个是获取列表的函数
loadData(){

const { dispatch, match: { params: { id } } } = this.props;
dispatch({
  type: 'slot/fetchAudit',
  id,
});
//this.forceUpdate();

}
我想通过this.forceUpdate()来强制更新组件但是无效,下面是请求的两个函数,
*delPhoto({ id }, { call, put }) {

  const response = yield call(delPhoto, id);
  if (response.status === true) {
    message.success('操作成功');
  } else {
    message.error('操作失败');
  }
},

*fetchAudit({ id }, { call, put }) {

  const response = yield call(getAuditSlot, id);
  if (response.status === true) {
    yield put({
      type: 'queryAudit',
      payload: response.data,
    });
  }
},

请教各位大佬,我用的是dva的数据层框架




如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

最后的乘客 2022-09-18 17:24:51

先说一下,你获取列表的时机有问题,应该在删除成功后再获取。还有你两个请求的id本来就不应该是同一个id吧?一个是被删除的图片的id,另一个不清楚是啥,但不应该还是根据被删除的图片id去请求列表。最后,react组件未更新应该只可能是由于接收到的props或内部的state没有变化,再或者就是shouldComponentUpdate返回false。你查一下删除前后获取的列表数据有没有区别?

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文