为了账号安全,请及时绑定邮箱和手机立即绑定

react异步更新组件

react异步更新组件

慕森王 2019-02-09 22:47:40
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的数据层框架
查看完整描述

1 回答

?
慕婉清6462132

TA贡献1804条经验 获得超2个赞

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

查看完整回答
反对 回复 2019-02-09
  • 1 回答
  • 0 关注
  • 534 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信