如何避免在Reactjs中每次都调用API?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何避免在Reactjs中每次都调用API?相关的知识,希望对你有一定的参考价值。

如何在相同参数下返回相同API的响应后,如何避免重新访问API

[目前,我有两个按钮都存储一些ID,当我单击BUTTON1时,api接受请求并提供响应;当我再次单击BUTTON2时,它将遵循相同的过程。两个按钮都将IdentifierId作为道具发送到SwitchComponent

现在主要问题是,当我再次单击Buuton1时,它将再次命中API,由于我不想存储在本地存储中,如何避免使用此部分

如何在React中声明要进行缓存?

这里是我的代码看起来像:


  const initialState = 
      SwichManagment: [],
      Error: false
  

  const reducer = (state, action) => 
      switch (action.type) 
          case "FETCHREQUEST":
              return 
                  ...state,
                  hasError: false
              ;
          case "FETCHSUCCESS":
              return 
                  ...state,
                  SwichManagment: action.payload,
              ;
          case "FETCHFAILURE":
              return 
                  hasError: true
              ;
          default:
              return state;
      
  
  const SwitchManagment = ( IdentifierId  ) => 

  const [states, dispatch] = useReducer(reducer, initialState)

      useEffect(() => 
          dispatch(
              type: "FETCHREQUEST"
          );
          axios.get(`https://example.com/$IdentifierId/now`)
                  dispatch(
                      type: "FETCHSUCCESS",
                      payload: response.data
                  );
              )
              .catch(error => 
                  dispatch(
                      type: "FETCHFAILURE"
                  );
              );
      , [IdentifierId]);

      return (
        <div >
        Object.keys(states.SwitchManagment).map(key => (
          <div className="item" key=states.SwitchManagment[key].id>
            <p>states.SwitchManagment[key].name</p>
            <p>
                states.SwitchManagment[key].progress
           </p>
         </div>
        ))
    </div>
      );
  ;
答案
一种简单的方法是检查SwitchManagment [key]是否不为null。 CallApi()为null

以上是关于如何避免在Reactjs中每次都调用API?的主要内容,如果未能解决你的问题,请参考以下文章

如何从 ReactJS 组件调用 Laravel Api 路由?

如何使用 Android 缓存视图并避免每次都调用 onCreate

如何使用我使用 fetch API 调用检索到的数据更新 Reactjs 状态?

ReactJS:如何只调用一次 useEffect 挂钩来获取 API 数据

在带有Redux的ReactJS中避免竞争条件

在 react js 中进行 API 调用的正确方法是啥?