react useEffect 参数问题

import React, { useState, useEffect, useCallback } from "react";
import "./styles.css";

export default function App() {
  const [data, setData] = useState();
  useEffect(() => {
    console.log(data);
  }, [data]);
  const updata = val => {
    setData(val);
  };
  return (
    <div className="App">
      <Child updata={updata} />
    </div>
  );
}

const Child = props => {
  const { updata } = props;
  const [val, setVal] = useState(1);

  useEffect(() => {
    console.log("子组件加载");
    let arr = [1, 2, 3, 4, 5];
    arr.forEach(item => {
      if (item === 3) {
        fetch(item);
      }
    });
    //预期只加载一次
    //问题 如果不添加updata参数 react-hooks/exhaustive-deps插件提示警告
    //如果添加了updata参数会重新加载子组件 数据重新加载
  }, []);
  const change = e => {
    setVal(e.target.value);
    updata(e.target.value);
  };
  return (
    <select value={val} onChange={change}>
      <option value="1">1</option>
      <option value="2">2</option>
    </select>
  );
};
阅读 1.8k
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题