Javascript 强制箭头函数重新计算表达式

Javascript 强制箭头函数重新计算表达式,javascript,reactjs,arrow-functions,Javascript,Reactjs,Arrow Functions,我有一个React应用程序,其中一个文件中有一些util函数。 其中一个是箭头函数,如下所示: export const getSomeData = () => { const cookieValue = <LOGIC_TO_READ_SOME_VALUE_FROM_COOKIE>; return cookieValue; }; export const getSomeData=()=>{ 常数cookieValue=; 返回值; }; 问题在于,箭头函数只

我有一个React应用程序,其中一个文件中有一些util函数。 其中一个是箭头函数,如下所示:

export const getSomeData = () => {
    const cookieValue = <LOGIC_TO_READ_SOME_VALUE_FROM_COOKIE>;
    return cookieValue;
};
export const getSomeData=()=>{
常数cookieValue=;
返回值;
};
问题在于,箭头函数只需一次评估:一旦页面最初加载。 因此,结果是该函数被求值为某个具体值,并保持该值直到下一页刷新。 如果cookie的值发生变化,我仍然会得到上一个值,因为arrow函数中的代码不会再次运行。 然而,如果我切换到标准ES5JS函数,我当然不会遇到这个问题:每次调用该函数时,代码都会运行

有没有办法“强制”箭头函数重新评估其返回值

因此,结果是,这个函数被评估为一些具体的函数 值并保持该值,直到下一页刷新

箭头函数不会这样做

setInterval(()=>{console.log(Math.random())}, 1000)
您将看到上面的语句以一秒的间隔生成整个随机值范围


只是arrow函数中的代码生成了相同的结果。

否,该函数将在每次调用时再次运行。如果您看到它返回相同的值,这意味着其中的代码再次运行并找到相同的值,而不是它没有再次运行。听起来cookie值没有改变。@t.J.Crowder同意。如果再次调用
getSomeData
,则应再次运行
块。也许这个逻辑会返回过时的值?“但是,如果我切换到标准ES5JS函数,当然我不会遇到这个问题”不,恐怕这是不正确的。函数的格式无关紧要,箭头与
函数与方法。每次调用它们时,它们都会运行。如果浏览器支持ES6语法,那么使用箭头函数而不是ECMAScript2015样式应该不会有什么区别。@T.J.Crowder只是想补充一点,尽管函数的格式与执行无关,唯一的区别在于块和箭头函数内部对该
的解释