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

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条回答 默认 最新

  • weixin_44058725
    已采纳

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

    点赞 评论

相关推荐