簡體   English   中英

在這種情況下,我需要redux-promise嗎?

[英]Do I need redux-promise in this case?

所以我正在我的react-redux應用程序中測試此api請求:

import $ from 'jquery';
window.$ = $;

const API_KEY = '<api-key>';
const ROOT_URL = `https://api.behance.net/v2/users?client_id=${API_KEY}`;

export const FETCH_USER = 'FETCH_USER';

export function fetchUser(users) {
  const request = $.ajax({
    url: `${ROOT_URL}&q=${users}`,
    type: 'get',
    data: { users: {} },
    dataType: 'jsonp'
  })
    .done(response => {
      console.log('Request:', request);
    })
    .fail(error => {
      console.log('Ajax request fails');
      console.log(error);
    });

  return {
    type: FETCH_USER,
    payload: request
  };
}

但是,在Chrome控制台中的Request:我正在使用readyState而不是Promise獲取對象,我現在是否甚至需要包redux-promise

我知道您正在嘗試做的事情,但我認為向減速器發送承諾不是一個好主意,我建議您使用中間件redux-thunk。 我會這樣重寫你的動作

export const fetchUser= ()=>(dispatch,getState)=>{
    let params={
        method:'get',
        body:{ users: {} },

    }
    fetch( `${ROOT_URL}&q=${users}`, params).then
    .then(response => response.json())
    .then((response) =>{ 
        dispatch({
            type:Const.ON_RESPONSE_OK,
            payload:response
        })
    })
      .catch(error => {
        dispatch({
            type:Const.ON_RESPONSE_ERROR,
            payload:Error
        })
      });
  }

並重寫reducer以處理有效載荷

暫無
暫無

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

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