强制箭头功能重新评估表达式

时间:2018-02-02 07:09:27

标签: javascript reactjs arrow-functions

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

export const getSomeData = () => {
    const cookieValue = <LOGIC_TO_READ_SOME_VALUE_FROM_COOKIE>;
    return cookieValue;
};

问题是箭头函数只被评估一次:一旦页面被初始加载。 因此,结果是该函数被评估为某个具体值,并保持该值直到下一页刷新。 如果cookie的值发生变化,我仍然会得到之前的值,因为箭头函数中的代码不会再次运行。 但是,如果我切换到标准的ES5 JS函数,当然我不会解决这个问题:每次调用函数时代码都会运行。

有没有办法强迫&#34;强迫&#34;箭头功能重新评估其返回值?

1 个答案:

答案 0 :(得分:1)

  

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

不!

箭头功能不会这样做。

setInterval(()=>{console.log(Math.random())}, 1000)

您会看到上述语句以一秒的间隔生成一系列随机值。

只有箭头函数中的代码才能生成相同的结果。