我看到下面是罚款:
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
或这样?
const
是像let
, 它是一个LexicalDeclaration使用在块中定义的标识符(VariableStatement,声明 )。
您正在尝试与混合此default
关键字, 这需要一个HoistableDeclaration,ClassDeclaration或AssignmentExpression遵循它。
因此,它是一个SyntaxError。
如果你想const
东西,你需要提供标识和不使用default
。
export
本身接受VariableStatement或宣言它是正确的。
AFAIK本身的出口应该不会对您目前的范围添加任何东西。
以下是精细export default Tab;
Tab
随着它的名称是默认的AssignmentExpression?
export default Tab = connect( mapState, mapDispatch )( Tabs );
是罚款
此处Tab = connect( mapState, mapDispatch )( Tabs );
是AssignmentExpression。
你也可以做这样的事情,如果你要导出默认一个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>);
保罗的回答是你要找的人。 然而,作为一个实际问题,我想你可能有兴趣在我已经用我自己的阵营+终极版应用程序的模式。
下面是我的路线之一,显示你如何定义你的组件,并将其导出为默认用一个语句精简例如:
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 )
如果组件名在文件名解释MyComponent.js
,只是不为组件命名,保持代码渺茫。
import React from 'react'
export default (props) =>
<div id='static-page-template'>
{props.children}
</div>
由保罗·共享的答案是最好的之一。 为了拓展更多,
只能有一个每个文件的默认出口。 尽管可以有不止一个常量出口。 默认变量可以用任何名义进口,而const的变量可以用任何名义进口。
VAR消息2 =“我出口”;
出口默认消息2;
出口const的消息=“我还远销”
在进口方面,我们需要导入它是这样的:
从 './test' 进口{消息};
要么
从“./test”进口消息;
与所述第一进口中,常量变量被导入,而与第二个,默认一个将被导入。