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

setInterval callback function is not dynamic (Redux props)

我有一个简单的 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 挂钩来存储 属性 值。这样您就可以访问它的值:

const propRef = useRef(null);
propRef.current = props.myStateVariable;

useEffect(()=> {
  const interval = setInterval(() => {
    console.log(propRef.current);
  }, 5000);
  return ()=> clearInterval(interval);
}, []);