再躺一会儿吧 2021-06-01 12:17 采纳率: 57.1%
浏览 916
已采纳

react 里面 父组件状态变化 子组件的useeffect一直被触发,求解决办法

  componentDidMount () {
    document.querySelector(".router").addEventListener("scroll", () => {
      this.showTop()
    })
  }
  showTop = () => {
    let topValue = document.querySelector(".showimg").getBoundingClientRect().top;
    if (topValue <= 5 && topValue > 0) {
      this.setState({ searchStatus: false })
    }
    else if (topValue >= -5 && topValue < 0) {
      this.setState({ searchStatus: true })
    }
  }

监听滚轮,改变了一个状态

子组件里面 的useEffect一直被触发

import React, { useEffect, useState } from 'react';
import Swp from "swiper";
import "swiper/swiper.min.css";

export default function Swiper (props) {
  const [list, setList] = useState([])
  useEffect(() => {
    setList(props.list)
    console.log(props.list, "nihao1")
    new Swp(".swiper-container", {
      loop: true, // 循环模式选项
    }, [])
  })
......
}
  • 写回答

1条回答 默认 最新

  • 崽崽的谷雨 2021-06-01 12:43
    关注

    用useMemo这个是当依赖发生变化才重新改变,useEffect默认每次都运行这个只是执行副作用

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 三极管电路求解,已知电阻电压和三级关放大倍数
  • ¥15 ADS时域 连续相位观察方法
  • ¥15 Opencv配置出错
  • ¥15 模电中二极管,三极管和电容的应用
  • ¥15 关于模型导入UNITY的.FBX: Check external application preferences.警告。
  • ¥15 气象网格数据与卫星轨道数据如何匹配
  • ¥100 java ee ssm项目 悬赏,感兴趣直接联系我
  • ¥15 微软账户问题不小心注销了好像
  • ¥15 x264库中预测模式字IPM、运动向量差MVD、量化后的DCT系数的位置
  • ¥15 curl 命令调用正常,程序调用报 java.net.ConnectException: connection refused