const Tab = connect( mapState, mapDispatch )( Tabs );
export default Tab;
然而,这是不正确的:
export default const Tab = connect( mapState, mapDispatch )( Tabs );
但这很好:
export default Tab = connect( mapState, mapDispatch )( Tabs );
请解释为什么const
对于export default
无效?这是否是不必要的添加&任何声明为导出默认值
的内容都假定为常量
或类似的内容?
const
类似于let
,它是一个LexicalDeclaration(VariableStatement,Declaration),用于定义块中的标识符。
您正在尝试将其与default
关键字混合使用,该关键字需要后面跟着HoistableDeclaration、ClassDeclaration或AssignmentExpression。
因此,它是一个语法错误。
选项卡
成为一个AssignmentExpression,因为它被指定为default名称?
导出默认选项卡=connect(mapState,mapDispatch)(选项卡);
没问题
这里tab=connect(mapState,mapDispatch)(Tabs);
是一个AssignmentExpression。
更新:想象问题的不同方式
如果您试图从概念上理解这一点,并且上面的规范推理没有帮助,那么可以将其理解为“如果default
是合法标识符而不是保留标记,那么编写export default Foo;
和export default const Foo=1;
会有什么不同的方式呢?”
在这种情况下,扩展的编写方法是
// pseudocode, this thought experiment is not valid JS
export default Foo;
// would be like
export const default = Foo;
export default const Foo = 1;
// would be like
export const default const Foo = 1;
// so would the following line make sense?
const bar const Foo = 1;
// pseudocode, this thought experiment is not valid JS
export default const Foo = 1;
// would be like
const Foo = 1;
export const default = Foo;
代码如上所示,background-size设置成8px,界面看不到任何效果,使用的是最新的chrome浏览器,请问是什么原因?
问题内容: 我有一个子过程命令,输出一些字符,例如’\ xf1’。我正在尝试将其解码为utf8,但出现错误。 上面抛出: 当我使用’latin-1’时它可以工作,但是utf8也不能工作吗?我的理解是latin1是utf8的子集。 我在这里想念什么吗? 编辑: 问题答案: 您已经将Unicode与UTF-8混淆了。Latin-1是Unicode的子集,但不是UTF-8的子集。 避免像瘟疫一样思考各个
问题内容: 我必须将npm应用程序的版本从0.1更改为0.0.1,以使npm不能执行此操作。 为了完整性,这里是工作的json 出现错误时,版本以前是“ 0.1”。 这是某种需要3套版本号的API / ABI兼容性版本控制概念吗?为什么错误消息对此不友好? 问题答案: 是的,这对于语义版本控制是必需的,这是npm软件包使用的版本控制方案。这是来自的片段: 版本必须可由node-semver解析,该
为什么clearinterval不生效? react的项目,在函数组件中定义了定时器容器: 想通过鼠标移入控制定时器启停 于是定义了
问题内容: 我正在编写需要隔离范围的指令,但是我想通过ngModel将其绑定到父范围。 这里的问题是父级的范围值未更改。 标记 JS 演示:小提琴。 如果我不对指令使用隔离范围,则此方法效果很好 演示:小提琴。 问题答案: 原因是因为您正在为指令创建隔离范围,所以同一元素上的指令也将获得该隔离范围。这意味着您有两个彼此不连接的不同作用域,它们都具有分别更改的属性。我想您可以通过以下代码举例说明:
我无法解决getWindow();由于某种原因的方法...