reactjs - 如何在 React hooks 和 redux 中只获取一次且不再获取数据

标签 reactjs api redux react-hooks

请问,在使用 React Hooks 在 React 组件中来回移动时,我如何只获取一次数据并且不再获取数据。我只是希望它以这样一种方式,即一旦在组件中第一次获取数据,它就不应该再次获取。在 react 钩子(Hook)中使用空数组 [ ] 将使组件在每次我们再次移动到组件时获取一次数据。 这是 reacthook 中使用的示例代码,仅获取一次数据。 即使从页面/组件转换到组件时,我也只想获取一次数据,而不是再次获取数据。 这两个链接在页面之间导航时仅获取一次数据。谢谢并希望收到大家的来信 http://www.favesound.de/ http://soundredux.io/

useEffect(() => {
const fetchData = async () => {
const result = await axios(url);
setData(result.data);
};
fetchData();
}, [url]);

最佳答案

redux 存储数据设置为 null 或一些空值。 在发出请求之前,请检查您存储的是否已有数据。 这将确保只有一个请求。

import React from "react";
import { useDispatch, useSelector } from "react-redux";

const Component = () => {
  const dispatch = useDispatch();
  const data = useSelector((state) => state.data);
};

useEffect(() => {
  if (data === null) {
    const fetchData = async () => {
      const result = await axios(url);
      dispatch({ type: "update-data", payload: result.data });
    };
    fetchData();
  }
}, [data]);

关于reactjs - 如何在 React hooks 和 redux 中只获取一次且不再获取数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68246634/

相关文章:

reactjs - 使用 mapDispatchToProps 时在 React 中初始化 Redux 的问题

javascript - React - 在 map 不起作用的子组件上单击处理程序

javascript - 如何从父对象返回子对象数组

php - 推特 API : Get Followers +99

redux - 2021 年我应该使用 redux-saga 或 redux-thunk 做什么?

reactjs - 如何解决 typescript Redux 连接错误 ActionCreatorsMapObject

javascript - Axios Post 请求在 React JS 中不起作用

javascript - Jest 模拟 React 组件

c++ - EverNote API 编译错误

c++ - 使用巨大的 Valgrind 和低级 C++ API