用于获取每周和每月数据的单个自定义挂钩

时间:2021-01-28 00:48:16

标签: reactjs react-hooks

我正在调用一个 API(一个具有不同日期作为查询参数的 url),我想在同一组件的两个不同部分同时显示每周数据(更详细)和每月数据(仅当月最大) . 每周数据应在装载时以及日期更改时和每月呈现,因为数据量很大,仅应要求提供。

出于这个原因,我创建了一个 useFetch 自定义钩子来获取这两种情况的数据。

我的问题是:

  • 是否有比以下代码更好的方法来处理这两种数据?
// Not real code, just an idea/concept
function App() {
    const [getData, setGetData] = useState(false);
    const { status1, data1, error1 } = useFetch(dates1);
    const { status2, data2, error2 } = useFetch(dates2, (ready: getData)); //"ready" param for calling only on request and not on mount


    const handleChange = () => {
        setGetData(true);
    };

    useEffect(() => {
        if (data2[0]) {
            console.log(data2);
        }
    }, [data2]);

    return (
        <>
            {data1 && data1.map(...)}
            <button onClick={handleChange}>Fetch data2</button>
        </>
    );
}
  • 我应该在 useFetch 内还是在组件本身内操作数据(例如:根据参数按天、月、年聚合数据和/或返回一个月中的最大数据)?

提前致谢。

PS:这是我的第一个自定义钩子,所以我希望这不是一个转储问题,但由于我已经搜索了几个小时没有明确的答案,堆栈溢出来救援。

0 个答案:

没有答案
相关问题