javascript - React Hook useEffect 缺少依赖项:'fetchData'
问题描述
谁能帮我解决这个错误?在useEffect 中,我调用了一个函数,该函数发出请求并将响应插入到 redux 状态。
import React, { useEffect, useState } from "react";
import { BrowserRouter as Router, Switch, Route} from "react-router-dom";
import { useDispatch, useSelector } from 'react-redux'
import { actions } from './actions/actions'
import { I18nProvider } from './i18n'
import axios from 'axios'
import Home from './views/home/home';
import Page1 from './views/page1/page1';
import Page2 from './views/page2/page2'
import Page3 from './views/page3/page3'
const App = () => {
const [isLoading, setIsLoading] = useState(true)
const localeDefault = useSelector(state => state.audioGuideReducers.lang)
const dispatch = useDispatch()
const setDataRedux= (data) => dispatch(actions.setDataRedux(data))
useEffect(() => {
fetchData();
}, []);
const fetchData = async () => {
await axios.get('https://link-api.com/alldata')
.then((response) => {
setDataRedux(response.data.data)
setIsLoading(false)
})
.catch( (error) => {
console.log(error.message);
})
}
return (
<I18nProvider locale={localeDefault}>
<Router>
{
isLoading ?
<h1> Loading... </h1>
:
<Switch>
<Route path="/page3/:id" component={Page3} />
<Route path="/page2" component={Page2} />
<Route path="/page1" component={Page1} />
<Route path="/" component={Home} />
</Switch>
}
</Router>
</I18nProvider>
);
}
export default App
尽管应用程序正在“运行”,但我想解决出现的以下警告:“ React Hook useEffect 缺少依赖项:'fetchData'。包括它或删除依赖矩阵 react-hooks/exaustive-deps ”
解决方案
fetchData
作为参数传递给useEffect
useEffect(() => {
fetchData();
}, [fetchData]);
推荐阅读
- android - Android - modify adapter from the UI thread and not from background thread
- python - How to rerun Spyder console automatically?
- angular - Angular file upload include file with other data in same post
- c++ - How to use Eigen::Tensor::convolve with multiple kernels?
- apache-kafka - KSQL UDF: DataException: Struct schemas do not match
- javascript - AutoFocus next TextInput onChangeText Crash
- java - 如何从 ArrayList 的 ArrayList 中删除重复的 ArrayList
- python-3.x - 如何在 python 3.7 上给出使用 networkx 制作的网络的哈希或签名?
- iframe - Refused to display 'https:/dmain.com/' in a frame because it set 'X-Frame-Options' to 'sameorigin'
- swift - 使用 Cocoa (macOS) 从 NSGradient 获取 NSImage