[英]Why can't I access the updated prop value within my function?
所以我有一个功能组件,可以从redux获取数据。 我的问题是,尽管数据在Redux存储中正确更改,但我无法访问某个道具的当前值,所以我认为Redux并不是问题。
我在下面重写了我组件的一个简单版本。 奇怪的是,即使在我的组件jsx中返回值.toString()也会返回正确的值,所以我希望这只是一个范围问题,或者是我没有得到我的代码而没有得到正确的值。
const Player = ({ isPlaying }) => {
function setProgress() {
console.log(isPlaying) // returns false here continuously!
}
function playSong() {
setInterval(() => {
setProgress();
}, 500);
}
useEffect(() => {
console.log(isPlaying) // returns true here!
}, [isPlaying])
}
const mapStateToProps = ({ isPlaying }) => {
console.log(isPlaying); // also returns true here!
return { isPlaying };
};
export default connect(mapStateToProps, null)(Player);
这是我遇到的问题的CodeSandbox重新创建的链接。
setInterval
在isPlaying
之上创建一个闭包,这就是为什么它总是相同的值。
时间间隔保留对isPlaying
的值的引用,它是通过with调用的。 要进行更改,您可能需要clearInterval
并在isPlaying
更改时开始一个新的isPlaying
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.