账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    react 数据请求
    57
    0

    action.js

    import actionTypes from "./actionTypes";
    import axios from "axios";
    
    export const getSeries = () => {
      return {
        type: actionTypes.SERIES_REQUEST,
        payload: axios.get("/api/series.json")
      };
    };
    import React,{useEffect} from 'react';
    import { useSelector, useDispatch, shallowEqual } from "react-redux";
    import { getSeries } from "../../../actions/series";
    export function Header() {
        const series = useSelector(state => state, shallowEqual);
         const dispath = useDispatch();
         
         useEffect(() => {
         //第一次请求
           dispath(getSeries());
         }, []);
        return (
            <div className="header"></div>
        );
    }
    
    export function Home() {
        const series = useSelector(state => state, shallowEqual);
         const dispath = useDispatch();
         useEffect(() => {
           //第二次请求
           dispath(getSeries());
         }, []);
        return (
            <div className="home"></div>
        );
    }
    

    遇到的问题 现在会发送两次相同的请求,浪费资源。

    请问如何只发送一次请求,两个组件会使用同一份数据

    0
    打赏
    收藏
    点击回答
        全部回答
    • 共 0 条
    • 掏枪毙了你 普通会员 1楼

      在React中,数据请求可以通过API或其他数据源进行。以下是一个简单的例子:

      ```jsx import React, { useState } from 'react';

      function App() { const [data, setData] = useState([]);

      // 发送数据请求 const fetchData = async () => { const response = await fetch('https://api.example.com/data'); const data = await response.json(); setData(data); };

      // 绑定数据请求 fetchData();

      return (

      {data.map(item => (
      {item.name}
      ))}
      ); }

      export default App; ```

      在这个例子中,我们首先定义了一个状态变量data来存储数据。然后,我们定义了一个异步函数fetchData,它会发送一个GET请求到API,并返回响应的JSON数据。我们使用useState钩子来管理这个异步函数的状态,以便在每次渲染时获取最新的数据。

      在主组件中,我们绑定fetchData函数的执行,并在渲染时使用map函数来遍历获取到的数据。

    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部