Javascript setInterval回调函数不是动态的(Redux props)

Javascript setInterval回调函数不是动态的(Redux props),javascript,reactjs,redux,setinterval,Javascript,Reactjs,Redux,Setinterval,我有一个简单的jssetInterval,其中我的回调只是检查一些Redux变量: setInterval(() => { console.log(props.myStateVariable); }, 5000); 问题是,它只打印在这个setInterval实例化时变量是什么。如何让它充满活力?谢谢 编辑 如果这个myStateVariable是一个长的、可编辑文本的字符串变量,所以我不希望每次有人键入字母时都重新设置这个超时,那该怎么办?尝试将间隔函数存储在变量中,每次pro

我有一个简单的js
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,它会很有用。我知道,当然,再次感谢。现在我觉得自己很愚蠢:)我编辑了我的问题,也许你有答案?是的,请看我的编辑,答案非常相似:)。