【发布时间】:2022-01-16 12:02:46
【问题描述】:
我有以下 reactJS 代码 -
useEffect(()=>{
const getinterviewerDetails= async ()=>{
const data1 = await axios.get("http://localhost:8083/api/GetProduct")
.then(response => {
console.log("role is "+response.data[0].role)
setinterviewerDetails(response.data)
var cars = response.data,
result = cars.reduce(function (r, a) {
r[a.role] = r[a.role] || [];
r[a.role].push(a);
return r;
}, Object.create(null));
console.log("result is : ",result);
console.log(interviewerDetails)
})
.catch(error => { console.log(error) })
setinterviewerDetails(data1);
};
getinterviewerDetails();
},[])
我需要从 useEffect 函数中获取全局范围内的结果值。我尝试这样做只是从函数范围之外声明变量,然后使用useEffect 范围对其进行初始化。但是,它赋予了未定义的价值。我怎样才能完成它?我只需要从全局范围访问结果值。
【问题讨论】:
-
您可以使用像 Redux 这样的全局 scrope 管理器。或者干脆使用 localStorage。
-
React 不使用“全局”作用域。您的问题需要更多的上下文和清晰度。你真的只是想用 Promise 链中计算的
result值更新interviewerDetails状态值吗?如果不是,那么请更新您的问题以包含所有相关代码,并更明确地说明您尝试使用result变量/值。 stackoverflow.com/help/minimal-reproducible-example -
你为什么在两个不同的地方打电话给
setinterviewerDetails?什么是-var cars = response.data, result = cars.reduce(...? - 这不是有效的语法
标签: javascript reactjs react-hooks dom-events javascript-objects