亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

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 關注
  • 564 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號