为异步请求api添加加载的svg图像

时间:2019-02-05 10:05:22

标签: reactjs redux-saga

我想在代码中添加自定义svg图像以进行加载,直到响应来自调用的api。

我尝试添加标志,但是不起作用。

请帮助我如何添加要加载的svg图像。我处于React和Redux的学习阶段。 我有processChatMessage用于请求api调用。

reducer.js就像:

$docker_cid = getenv('DOCKER_CID'); 

action.js如下:

const processChatMessage = (state, action) => {
  console.log("[reducer]", action.type);

  const { messages } = state;
  const { message } = action.payload;

  const newMessages = [...messages, message];

  return { ...state, messages: newMessages };

};

const commitChatMessageRequest = processChatMessage;
const commitChatMessageSuccess = processChatMessage;
const commitChatMessageError = processChatMessage;

// Hub Reducer
const ChatMessageReducer = (state = initState, action) => {
  let newState;
  switch (action.type) {
    case types["CHAT/MESSAGE_REQUEST"]:
      newState = commitChatMessageRequest(state, action);
      break;
    case types["CHAT/MESSAGE_SUCCESS"]:
      newState = commitChatMessageSuccess(state, action);
      break;
    case types["CHAT/MESSAGE_ERROR"]:
      newState = commitChatMessageError(state, action);
      break;
    default:
      newState = state;
  }
  return newState;
};


export default ChatMessageReducer

1 个答案:

答案 0 :(得分:0)

由于您是这里的新手,请迅速提醒:仅“它不起作用”是永远不够的。确实尝试描述预期的行为(您做到了)以及当前的行为。例如,在这里我不知道发生了什么: onProcess 是否随时设置为true?您可能未在代码中成功实现图像本身吗? ...如此多的可能性。

无论如何,我什至在您的代码中都看不到对API的任何调用,因此再次很难看到错误的出处...

积极的一面,我发现您有很好的直觉,可以在商店中使用 onProcess 布尔值,我想跟踪待处理请求的状态。 / p>

现在您需要实现的逻辑是1个动作和3个reducer:

FetchChatMessage :首先调用 IsFetching reducer将您的 onProcess 传递给True,然后调用您的API,然后在应答时调用 OnChatMessageSucces reducer(如果成功),或者 OnChatMessageFail (如果失败)以及在每种方法上将您的onProcess设置为false。

以下是您实际尝试做的一个简单示例:https://jsfiddle.net/ibobcode/fgk917bz/5/ .