小编Lot*_*wer的帖子

反应挂钩-useEffect方法不断获取

在我的许多组件中,我必须使用存储中的令牌来获取数据并进行表示(页眉菜单,页脚菜单,页面上的产品,滑块图像等)。我试图做的就是仅在没有数据的情况下获取此数据,但是React每次每次令牌更改时都会发送请求(因为令牌是依赖项),即使我清楚地说明了条件并且可以通过控制台查看到。记录它。我究竟做错了什么?

const [cities, setCities] = useState([]);

useEffect(() => {
 if (!cities.length) {
  fetch(`.....&token=${props.token}`)
  .then(response => response.json())
  .then(data => {

    if (data.data.results) {
    setCities(data.data.results.cities)

    }
   })
  }
}, [props.token, cities.length]);
Run Code Online (Sandbox Code Playgroud)

reactjs react-hooks use-effect

5
推荐指数
1
解决办法
44
查看次数

每小时刷新令牌的最佳方法?

我正在使用 React 构建一个网站,每个页面必须发送大约 3 个请求,但首先我必须获得需要每小时刷新一次的通信令牌,然后将其用作所有其他请求的基础要求。

我计划在 App 安装后立即获取它并将其置于状态(redux、thunk)并在订阅存储的每个组件中使用它,然后将 setInterval 函数也放入 componentDidMount 方法中。我想到的另一件事是将它放在本地存储中,但这会有点复杂(每次我从本地存储获取一些东西时我都必须解析)。

class App extends React.Component {
  componentDidMount() {
    this.props.getToken()

    setInterval (this.props.getToken, 5000)
 }
Run Code Online (Sandbox Code Playgroud)

这工作得很好,在页面之间切换不会破坏任何东西,它工作得很好。请注意,这里的 5000 毫秒仅用于尝试,我将其设为 3500000。这可以吗,还是有其他方法可以做到这一点?谢谢!

request fetch reactjs redux

4
推荐指数
1
解决办法
2290
查看次数

标签 统计

reactjs ×2

fetch ×1

react-hooks ×1

redux ×1

request ×1

use-effect ×1