React 回调函数无法在其中获取道具值

问题描述 投票:0回答:0

我有一个 React 表格组件,它附有一个手风琴

const ParentComponent = ({
megaDataFromAPIresponse1, megaDataFromAPIresponse2, someStaticProp1, someStaticProp2
});

console.log("megaDataFromAPIresponse1", megaDataFromAPIresponse1);
// prints value of megaDataFromAPIresponse1 properly.

const Temp=(props)=>{
 console.log("props", props); //prints props that SpecialTable returns

 console.log("megaDataFromAPIresponse1", megaDataFromAPIresponse1); 
 //expected to print megaDataFromAPIresponse1 from parentComponent. 
 //But prints null
 //same with megaDataFromAPIresponse2. Prints null

 console.log("someStaticProp1", someStaticProp1); // prints staticProp1 value

}

return <SpecialTable {...props} Accordion={Temp} />


这里

Accordion
返回一个回调函数,其中包含一些道具。

从上面的代码片段可以看出 Temp 函数无法访问外部变量。你能帮我理解为什么吗?

此外,我尝试在调用时在

Temp
内部设置一个状态变量,并且在 useEffect 的依赖项内部查看该状态并执行操作。但是在
Temp
调用上设置该状态会让我陷入无限循环 - 不确定为什么?

提前致谢

javascript reactjs callback closures usecallback
© www.soinside.com 2019 - 2024. All rights reserved.