Javascript setInterval回调函数不是动态的(Redux props)
我有一个简单的jsJavascript setInterval回调函数不是动态的(Redux props),javascript,reactjs,redux,setinterval,Javascript,Reactjs,Redux,Setinterval,我有一个简单的jssetInterval,其中我的回调只是检查一些Redux变量: setInterval(() => { console.log(props.myStateVariable); }, 5000); 问题是,它只打印在这个setInterval实例化时变量是什么。如何让它充满活力?谢谢 编辑 如果这个myStateVariable是一个长的、可编辑文本的字符串变量,所以我不希望每次有人键入字母时都重新设置这个超时,那该怎么办?尝试将间隔函数存储在变量中,每次pro
setInterval
,其中我的回调只是检查一些Redux
变量:
setInterval(() => {
console.log(props.myStateVariable);
}, 5000);
问题是,它只打印在这个setInterval
实例化时变量是什么。如何让它充满活力?谢谢
编辑
如果这个
myStateVariable
是一个长的、可编辑文本的字符串变量,所以我不希望每次有人键入字母时都重新设置这个超时,那该怎么办?尝试将间隔函数存储在变量中,每次props.myStateVariable更改时都重写间隔函数
const interval = useRef(null);
useEffect(()=> {
interval.current = setInterval(() => {
console.log(props.myStateVariable);
}, 5000);
return ()=> clearInterval(interval.current);
}, [props.myStateVariable]);
编辑:
如果不想在每次属性更改时覆盖间隔,可以使用useRef
hook来存储属性值。通过这种方式,您可以访问它的值:
const propRef = useRef(null);
propRef.current = props.myStateVariable;
useEffect(()=> {
const interval = setInterval(() => {
console.log(propRef.current);
}, 5000);
return ()=> clearInterval(interval);
}, []);
是否尝试将其作为函数参数传递?是否尝试使用useSelector钩子?这就是我用来从redux商店获取动态值的方法。谢谢@Viete…事实上,没有任何评论有效…@true\u gler你是说传递道具值?但问题是:我一开始不知道这个值,我想每5秒推断一次。谢谢,伙计,我和它斗争了太久:)不客气。另外,您不需要创建ref,您可以在useffect中创建一个变量,它也应该可以工作。useffect(()=>{const interval=setInterval(()=>{console.log(props.mystatevaluate);},5000);return()=>clearInterval(interval);},[props.mystatevaluate])。如果你需要在其他地方使用ref,它会很有用。我知道,当然,再次感谢。现在我觉得自己很愚蠢:)我编辑了我的问题,也许你有答案?是的,请看我的编辑,答案非常相似:)。