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

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

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    react如何在返回的时候不重新拉取数据
    64
    0

    具体要求是这样:用react做的webapp。首页有横向导航栏,点击切换路由参数,根据路由参数重新拉取数据。列表页,点击能够进入详情页。
    因为在列表页已经实现了下拉刷新功能,我希望除了第一次进入每个页面通过Ajax拉取数据,后面导航之前切换,返回都不重新拉取除非手动下拉刷新。
    目前想到的只是在全局为每个路由页面维护一份数据,或者根据一个变量判定是否需要重新拉取。想知道在实际开发中有这样的场景吗,是怎么解决的。

    0
    打赏
    收藏
    点击回答
    您的回答被采纳后将获得:提问者悬赏的 10 元积分
        全部回答
    • 0
    • 叫兔子的猫 ̄3 ̄ 普通会员 1楼

      在React中,你可以使用useEffect钩子和useState钩子来实现这个功能。useEffect钩子会在组件渲染完成后执行,而useState钩子会在组件状态改变时执行。

      以下是一个简单的例子,它会在组件渲染完成后,且当组件状态改变时,不重新拉取数据:

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

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

      useEffect(() => { // 拉取数据 // ... setData(data); }, []);

      return (

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

      在这个例子中,useEffect钩子在组件渲染完成后执行,它会调用fetchData函数来拉取数据。这个函数会在组件状态改变时执行,因此当组件状态改变时,useEffect钩子不会重新拉取数据。

      注意,你需要在组件的render方法中调用useEffect钩子,而不是在useEffect函数的外部调用它。

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