簡體   English   中英

錯誤:操作必須是普通對象。 使用自定義中間件進行異步操作。 我究竟做錯了什么?

[英]Error: Actions must be plain objects. Use custom middleware for async actions. What am I doing wrong?

我正在嘗試將這兩個變量的currentduration推送到 redux 商店。 我收到了這個錯誤。 我是新手,所以有人可以告訴我我做錯了什么嗎?

在此處輸入圖像描述

  const timeUpdateHandler = (e) => {
    const current = e.target.currentTime;
    const duration = e.target.duration;

    dispatch(timerUpdate(current, duration));
  };

這是商店文件中的動作創建者:

export const timerUpdate = (current, duration) => async (dispatch) => {
  console.log(current);

  dispatch({
    type: PLAYER_TIMER_UPDATE,
    payload: {
      currentTime: current,
      duration: duration,
    },
  });
};

問題是,您的操作創建者不會返回object而是返回Promise<object> 這是因為您的操作創建者之前的async關鍵字。

async 關鍵字將結果包裝在 promise 中。 您發布的代碼塊沒有任何異步功能,因此您可以安全地刪除它。

另一方面,如果您確實想要異步操作,請嘗試使用 HMR 建議的redux-thunk

暫無
暫無

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

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