javascript - 为什么我不能使用钩子在我的状态下设置值?
问题描述
我正在尝试通过函数在我的状态中设置数据......状态被称为值,这是我拥有的代码
const [values, setValues] = useState({
about:'',ourServiceBuyer:'',ourServiceSupplier:'',faq:[],products:[]
});
useEffect(() => {
async function handleData() {
try {
const result = await LandingData()
console.log('algo',result.data.landing.about_us )
setValues({
about:result.data.landing.about_us,
ourServiceBuyer:result.data.landing.our_services_supplier,
ourServiceSupplier :result.data.landing.our_services_supplier,
faq : result.data.landing_page_faq,
products:result.data.products,
});
console.log("resultado de useEffect mostrando los values",values)
console.log("resultado de useEffect", result);
} catch (e) {
console.error('error in obatin the return of LandingData: ', e.message);
handleRedirect('/WrongRequest');
}
}
handleData()
}, []);
landingData()
为我提供了我需要的数据,我可以看到它console.log()
但是,当我尝试将数据设置为状态时,我只得到相同的初始状态...
解决方案
我在这句话前加了“等待”
console.log("resultado de useEffect mostrando los values",values)
推荐阅读
- php - 错误:路径不能为空,在闭包函数内部
- wordpress - 保存 WooCoomerce 订单时动态更改后端 WPML 语言
- sensenet - Sensenet 在浏览架构时显示错误
- python - 虽然循环崩溃机器人
- javascript - firebase.auth().currentUser.uid 显示以前的 uid
- flutter - 在颤动中添加存储在文本字段中的两个数字时出现问题。我不知道出了什么问题
- reactjs - 使用 apollo graphql hook useQuery 时超出最大调用堆栈大小
- java - 我怎样才能找到二维数组中的总分和最高分
- python - IF语句重复输出
- c++ - 使 iostreams 更严格