簡體   English   中英

反應-異步修改道具

[英]React - modify props asynchronously

通過使用Redux,我的組件在props中接收了一個數據數組。 我的目標是在組件擁有它們之后異步修改這些數據點,如下所示:

componentWillReceiveProps(newProps) {
   newProps.myData.forEach ( d => {
       axios.get(....).then (res => { d.property = res.data) });
   })
}

我也正在使用react-bootstrap-table-2來顯示this.props.myData 但是,更新永遠不會反映在表中。 如果我像這樣同步更改

componentWillReceiveProps(newProps) { newProps.myData.forEach( d => d.property = 1 ) }

然后將其顯示在表格中。 如何實現異步更新?

如果您使用的是redux,則更新狀態的方式應該是將操作分派給reducer。 您可以通過向組件提供dispatch ,然后通過調用dispatch(updateTable(newData)

// tableActions.js
function updateTable(newData) {
  return {
     type: 'UPDATE_TABLE',
     newData: newData
  }
}

// tableReducer.js

function tableReducer(state = initialState, action) {
  switch (action.type) {
    case UPDATE_TABLE:
      return Object.assign({}, state, {
        tableData: action.newData
      })
    default:
      return state
  }
}

您需要像redux thunk這樣的東西才能工作

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM