ZBLOG

useEffect(() => { const allParamsFilled = !Object.values(brandSearch).some(param => param === ''); if (allParamsFilled) { setCurrent(1); setPageSize(10); } proxyList(brandSearch, certainTabs,...

要实现在 certainTabsbrandSearch 两个参数都改变时只执行一次,可以使用一个额外的状态变量来控制。下面是一个可能的解决方案:

const [shouldExecute, setShouldExecute] = useState(true);

useEffect(() => {
  if (shouldExecute) {
    const allParamsFilled = !Object.values(brandSearch).some(param => param === '');
    if (allParamsFilled) {
      setCurrent(1);
      setPageSize(10);
    }
    proxyList(brandSearch, certainTabs, current, pageSize); // 执行 proxyList 并设置 current 和 pageSize 为 1
    setShouldExecute(false);
  }
}, [certainTabs, brandSearch]);

// 在某个地方修改 certainTabs 或 brandSearch 的代码中,加上以下逻辑即可:
setShouldExecute(true);

通过引入 shouldExecute 状态变量,我们可以在每次执行之前判断是否应该执行。当 certainTabsbrandSearch 发生变化时,将 shouldExecute 设置为 true,这样在下一次渲染时会触发 useEffect 内部的逻辑,并将其设置为 false 防止重复执行。这样就能保证只有在两个参数都改变时才会执行一次。


内容由零声教学AI助手提供,问题来源于学员提问

本站部分文章来源于网络,版权归原作者所有,如有侵权请联系站长删除。
转载请注明出处:https://golang.0voice.com/?id=16689

分享:
扫描分享到社交APP
上一篇
下一篇
发表列表
游客 游客
此处应有掌声~
评论列表

还没有评论,快来说点什么吧~

联系我们

在线咨询: 点击这里给我发消息

微信号:3007537140

上班时间: 10:30-22:30

关注我们
x

注册

已经有帐号?