这发生在我使用immutable.js的反应应用程序中。基本上,在该组件的render
函数内,它到达一行,如
1. foo.get('attr')
控制台看起来像:
foo is not defined file.js:1
其中foo
应该是Immutable.Map
。在尝试使用foo
之前,我发现foo实际上被定义为Immutable.Map
。这很奇怪......我的代码现在看起来像:
1. console.log(foo)
2. foo.get('attr')
控制台看起来像
Immutable.Map { ... } file.js:1
foo is not defined file.js:2
接下来,我尝试记录foo.get('attr')
,我的代码如下:
1. console.log(foo)
2. console.log(foo.get('attr'))
3. foo.get('attr')
和控制台看起来像:
Immutable.Map { ... } file.js:1
'value' file.js:2
foo is not defined file.js:2
我知道这是具有特定库的通用代码,但我想知道是否有人知道这是怎么回事?它看起来像一条线路运行了两次,我认为这不可行。