gpt4 book ai didi

javascript - React Hook useEffect 缺少依赖项 : 'props'

转载 作者:行者123 更新时间:2023-12-05 04:58:46 24 4
gpt4 key购买 nike

我正在尝试使用 React Hooks(这是我第一次),但是在像上面的 componentDidMount 一样使用 useEffect 时出现此错误:'React Hook useEffect 缺少依赖项:'props'。包括它或删除依赖项数组。但是,当任何 prop 时,'props' 会改变更改,因此首选修复方法是在 useEffect 调用之外解构“props”对象,并在 useEffect 中引用那些特定的 Prop

我正在尝试向 API 发出 GET 请求,这需要 url 中的一些属性。这是我的代码:

function SomeComponent(props) {
const [data, setData] = useState({});
const [loading, setLoading] = useState(true);
const [hasError, setErrors] = useState(false);

useEffect(() => {
async function fetchData() {
try {
let response = await Axios.get( `/some-url/${props.obj.id}/abc`,

);
let { data } = response.data;
setData(data);
setLoading(false);
props.totalStats({data });
} catch (error) {
setErrors(error);
setLoading(false);
}
}
fetchData();
}, []);
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/16.6.3/umd/react.production.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/react-dom/16.6.3/umd/react-dom.production.min.js"></script>

我一直在寻找并尝试这些解决方案,但它们对我不起作用:

const { id } = props.obj.id;
const {totalStats} = props.totalStats

useEffect(()=>{
//Here is the code
//I replace the $ {props.obj.id} by the id and the function props.totalStats by //totalStats
},[id,totalStats]

这样做我在 id 和函数调用中获得了一个 undefined。

然后我尝试这样做:

useEffect(()=>{
//here is the code like the first one

},[props])

但这会向 api 发出 n 次请求

最佳答案

从常量导入中删除大括号。

所以它应该看起来像这样:

function SomeComponent(props) {
const objId = props.obj.id;
const totalStats = props.totalStats;

const [data, setData] = useState({});
const [loading, setLoading] = useState(true);
const [hasError, setErrors] = useState(false);

useEffect(() => {
async function fetchData() {
try {
let response = await Axios.get( `/some-url/${objId}/abc`,

);
let { data } = response.data;
setData(data);
setLoading(false);
totalStats({data });
} catch (error) {
setErrors(error);
setLoading(false);
}
}
fetchData();
}, [objId, totalStats]);
}

关于javascript - React Hook useEffect 缺少依赖项 : 'props' ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63838599/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com