我强制下面的代码在catch
块中运行,它将getFoodCategoriesFailed
设置为true
,之后当它转到最终
块时,它仍然将getFoodCategoriesFailed
显示为false
,这是它的初始值。有人能指出我做错了什么并帮我改正吗。
const [getFoodCategoriesFailed, setGetFoodCategoriesFailed] = useState(false);
const getCategories = async (url) => {
const { request } = await requestor.get({ url });
request.then((response) => {
setFoodCategories(response);
setGetFoodCategoriesFailed(false);
}).catch(() => {
setFoodCategories(undefined);
setGetFoodCategoriesFailed(true);
}).finally(() => {
onFoodCategoriesRetrieved(getFoodCategoriesFailed, foodCategories?.food_categories);
});
};
useEffect(() => {
const url = "xyz";
getCategories(url);
}, [foodCategories]);
我不是专家,所以如果这没有帮助,我很抱歉,但是...有几件事我可能会尝试:
>
类似的东西:
const getCategories = async (url) => {
const { request } = await requestor.get({ url });
let localFoodCategories = undefined;
let localGetFoodCategoriesFailed = true;
request.then((response) => {
localFoodCategories = response;
localGetFoodCategoriesFailed = false;
}).catch(() => {
}).finally(() => {
setFoodCategories(localFoodCategories);
setGetFoodCategoriesFailed(localGetFoodCategoriesFailed);
onFoodCategoriesRetrieved(localGetFoodCategoriesFailed, localFoodCategories?.food_categories);
});
};
useState不会同步更改
useState是同步的吗?
如果要同步使用useState,请使用下面的代码
import { useState, useRef, useEffect } from 'react';
export default function useStateCallback(initialState) {
const [state, setState] = useState(initialState);
const cbRef = useRef(null); // mutable ref to store current callback
// eslint-disable-next-line no-shadow
const setStateCallback = (state, cb) => {
cbRef.current = cb; // store passed callback to ref
setState(state);
};
useEffect(() => {
// cb.current is `null` on initial render, so we only execute cb on state *updates*
if (cbRef.current) {
cbRef.current(state);
cbRef.current = null; // reset callback after execution
}
}, [state]);
return [state, setStateCallback];
}
问题内容: 我有一个Checkbutton和一个与之关联的对象,但是当我尝试获取的值时,我正在接收。 这是我的代码: 我为什么要得到? 问题答案: 是对对象的引用。您需要调用其方法来访问其表示的值:
编辑问题以包括所需的行为、特定问题或错误,以及重现问题所需的最短代码。这将有助于其他人回答这个问题。 代码不返回值,而是返回“?”。编译时我没有遇到任何错误。请协助。 代码需要返回需要支付的剩余金额。输出代码1代码2代码3代码4
我正在创建一个递归导航迷宫的程序。代码: 然而,每当我到达死胡同时,它都不会回溯。当我调试时,它表明当程序从递归或“回溯”返回时,我的起始值专注于停留在我的死胡同空间。 例如: 9是我的出发点。2是我的退出。4是我的道路。1 表示墙壁。当我到达一个死胡同时(在本例中为第 7 行,第 2 列)。我的立场是等于整个程序其余部分的死胡同空间。这是为什么呢?
我试图了解异步/等待如何与promise一起工作。 据我所知,await应该是阻塞的,在上面的代码中,它似乎阻塞了返回带有原语
我开始使用钩子,我遇到了一个问题。 我有一个状态: 最初设置为,它在初始渲染时正确渲染。 但问题是,我希望它的值是我使用hook在初始渲染中获取的数组的长度 但是我不知道阵列的长度,直到组件安装完毕。 所以,在这个函数中,我试图访问priceToFilter,但它返回,因为这是它的初始值。 但是,如果您在中看到,我将通过函数将设置为另一个值。但是,当发生在初始化挂载之后时,它不会获得新值,而是保持
无论如何,这个公式是否可以修改为返回,例如:找到单词“哇”,并将该单词返回到单元格中,而不是true/false? 谢谢。