[英]React functional component inside a loop calls api only returns the response for last element passed on api
父组件
data.map(eachData => (
<ChildComponent
key={eachData.id}
child={eachData}
/>
))
子组件
props.getChildData({id: id}); 代码调用 Redux 动作并将其存储在减速器中
function ChildComponent(props) {
const [id, setId] = React.useState(props.eachData.id)
useEffect(() => {
let handler
(function () {
handler = setTimeout(() => {
props.getChildData({id: id})
}, 1000)
})();
return () => {
clearTimeout(handler)
}
}, [id])
}
Api 呼叫正在网络选项卡中进行和验证。 Redux 存储仅返回 api 响应具有最后的 api 响应
您错误地访问了子组件中的 id。 id 在 props.child 而不是 props.eachData 里面所以改变 useState 来访问 id 像这样:
const [id, setId] = React.useState(props.child.id);
它会正常工作。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.