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>
);
};