为什么是'出口默认Const`无效?为什么是'出口默认Const`无效?(Why I

2019-05-12 18:50发布

我看到下面是罚款:

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 ? 它是一个不必要的另外&声明为任何export default假定一个const或这样?

Answer 1:

const是像let它是一个LexicalDeclaration使用在块中定义的标识符(VariableStatement,声明 )。

您正在尝试与混合此default关键字, 这需要一个HoistableDeclaration,ClassDeclarationAssignmentExpression遵循它。

因此,它是一个SyntaxError。


如果你想const东西,你需要提供标识和不使用default

export本身接受VariableStatement宣言它是正确的。


AFAIK本身的出口应该不会对您目前的范围添加任何东西。


以下是精细export default Tab;

Tab随着它的名称是默认AssignmentExpression?

export default Tab = connect( mapState, mapDispatch )( Tabs ); 是罚款

此处Tab = connect( mapState, mapDispatch )( Tabs );AssignmentExpression。



Answer 2:

你也可以做这样的事情,如果你要导出默认一个const /让,而不是

const MyComponent = ({ attr1, attr2 }) => (<p>Now Export On other Line</p>);
export default MyComponent

你可以做这样的事情,我不喜欢个人。

let MyComponent;
export default MyComponent = ({ }) => (<p>Now Export On SameLine</p>);


Answer 3:

保罗的回答是你要找的人。 然而,作为一个实际问题,我想你可能有兴趣在我已经用我自己的阵营+终极版应用程序的模式。

下面是我的路线之一,显示你如何定义你的组件,并将其导出为默认用一个语句精简例如:

import React from 'react';
import { connect } from 'react-redux';

@connect((state, props) => ({
    appVersion: state.appVersion
    // other scene props, calculated from app state & route props
}))
export default class SceneName extends React.Component { /* ... */ }

(注:我使用的任何路线的顶级组件术语“场景”)。

我希望这是有帮助的。 我认为这是干净多了,看起来比传统的connect( mapState, mapDispatch )( BareComponent )



Answer 4:

如果组件名在文件名解释MyComponent.js ,只是不为组件命名,保持代码渺茫。

import React from 'react'

export default (props) =>
    <div id='static-page-template'>
        {props.children}
    </div>


Answer 5:

由保罗·共享的答案是最好的之一。 为了拓展更多,

只能有一个每个文件的默认出口。 尽管可以有不止一个常量出口。 默认变量可以用任何名义进口,而const的变量可以用任何名义进口。

VAR消息2 =“我出口”;

出口默认消息2;

出口const的消息=“我还远销”

在进口方面,我们需要导入它是这样的:

从 './test' 进口{消息};

要么

从“./test”进口消息;

与所述第一进口中,常量变量被导入,而与第二个,默认一个将被导入。



文章来源: Why Is `Export Default Const` invalid?