Reactjs React Hook useEffect缺少依赖项:';getNewPins';

Reactjs React Hook useEffect缺少依赖项:';getNewPins';,reactjs,Reactjs,我有一个小项目,从Unsplash获取图像,即使检查了很多次,我的代码仍然有一个问题,我正在运行我的代码,但它总是给出这个错误,但我不明白。任何想法都将不胜感激 App.js: function App() { const [pins, setNewPins] = useState([]) const getImages = (term) => { return unsplash.get ("https://api.unsplash.com/sea

我有一个小项目,从Unsplash获取图像,即使检查了很多次,我的代码仍然有一个问题,我正在运行我的代码,但它总是给出这个错误,但我不明白。任何想法都将不胜感激

App.js:

function App() {
    const [pins, setNewPins] = useState([])
    const getImages = (term) => {
        return unsplash.get ("https://api.unsplash.com/search" , {
            params: {
              query: term
            }
        });
    };
    const onSearchSubmit = (term) => {
        getImages(term).then((res) => {
            let results = res.data.results;
            let newPins = [
              ...results,
              ...pins
            ]
            newPins.sort(function(a,b) {
                return 0.5 - Math.random();
            });
            setNewPins(newPins);
        });
    };
    const getNewPins = () => {
        let promises = [];
        let pinData = [];
        let pins = ['Istanbul','cats','sky','lake','nature']
        pins.forEach((pinTerm) => {
            promises.push (
              getImages(pinTerm).then((res) => {
                  let results = res.data.results;
                  pinData = pinData.concat(results);

                  pinData.sort(function(a,b) {
                      return 0.5 - Math.random();
                  });
              });
            );
        });
        Promise.all(promises).then(()=> {
            setNewPins(pinData);
        });
};
useEffect(() => {
    getNewPins();
}, []);
return (
    <div className="app">
        <Header  onSubmit={onSearchSubmit}/>
            <Mainboard  pins={pins}/>
    </div>
)}
export default App;
函数应用程序(){
常量[pins,setNewPins]=useState([])
常量getImages=(术语)=>{
返回unsplash.get(“https://api.unsplash.com/search" , {
参数:{
查询:术语
}
});
};
const onSearchSubmit=(术语)=>{
获取图像(术语)。然后((分辨率)=>{
让结果=res.data.results;
设newPins=[
…结果,
…别针
]
newPins.sort(函数(a,b){
返回0.5-Math.random();
});
设置新引脚(新引脚);
});
};
const getNewPins=()=>{
让承诺=[];
设pinData=[];
let pins=[‘伊斯坦布尔’、‘猫’、‘天空’、‘湖泊’、‘自然’]
pins.forEach((pinTerm)=>{
承诺,推动(
获取图像(pinTerm)。然后((res)=>{
让结果=res.data.results;
pinData=pinData.concat(结果);
pinData.sort(函数(a,b){
返回0.5-Math.random();
});
});
);
});
承诺。所有(承诺)。然后(()=>{
setNewPins(pinData);
});
};
useffect(()=>{
getNewPins();
}, []);
返回(
)}
导出默认应用程序;

每次渲染后,应用程序中每次都会重新创建
getNewPins
方法,并且您在
useffect
中使用该方法,即将其放置在
[]
数组中。如果这样做,它稍后会说将
getNewPins
包装在
useCallback
内,以防止重新渲染。相反,您可以将整个函数放在
useffect
中,就像这样(因为它是一个一次性操作,最初是完成的):-

函数应用程序(){
常量[pins,setNewPins]=useState([])
常量getImages=(术语)=>{
返回unsplash.get(“https://api.unsplash.com/search" , {
参数:{
查询:术语
}});
};
const onSearchSubmit=(术语)=>{
获取图像(术语)。然后((分辨率)=>{
让结果=res.data.results;
设newPins=[
…结果,
…别针,
]
newPins.sort(函数(a,b){
返回0.5-Math.random();
});
设置新引脚(新引脚);
});
};
useffect(()=>{
const getNewPins=()=>{
让承诺=[];
设pinData=[];
let pins=[‘伊斯坦布尔’、‘猫’、‘天空’、‘湖泊’、‘自然’]
pins.forEach((pinTerm)=>{
承诺,推动(
获取图像(pinTerm)。然后((res)=>{
让结果=res.data.results;
pinData=pinData.concat(结果);
pinData.sort(函数(a,b){
返回0.5-Math.random();
});
})
);
});
承诺。所有(承诺)。然后(()=>{
setNewPins(pinData);
});
};
getNewPins();
}, []);
返回(
);
}
导出默认应用程序;

tnx太多了。谢谢。
function App() {
const [pins, setNewPins] = useState([])
const getImages = (term) => {
return unsplash.get ("https://api.unsplash.com/search" , {
params: {
  query: term
}});
};
const onSearchSubmit = (term) => {
 getImages(term).then((res) => {
 let results = res.data.results;
 let newPins = [
   ...results,
   ...pins,
 ]
 newPins.sort(function(a,b){
  return 0.5 - Math.random();
 });
 setNewPins(newPins);
});
};

  useEffect(() => {
   const getNewPins = () => {
 let promises = [];
 let pinData = [];
  let pins = ['Istanbul','cats','sky','lake','nature']
  pins.forEach((pinTerm) => {
  promises.push (
  getImages(pinTerm).then((res) => {
  let results = res.data.results;
  pinData = pinData.concat(results);

  pinData.sort(function(a,b){
    return 0.5 - Math.random();
  });
 })
 );
});
Promise.all(promises).then(()=> {
 setNewPins(pinData);
 });
 };
  getNewPins();
 }, []);
return (
<div className="app">
  <Header  onSubmit={onSearchSubmit}/>
  <Mainboard  pins={pins}/>
</div>
);
}
export default App;