我看到以下内容很好:
const Tab = connect( mapState, mapDispatch )( Tabs );
export default Tab;
但是,这是不正确的:
export default const Tab = connect( mapState, mapDispatch )( Tabs );
然而,这是很好的:
export default Tab = connect( mapState, mapDispatch )( Tabs );
请解释一下为什么在export default
中const
是无效的?它是否是不必要的添加&任何声明为export default
的内容都被假定为const
或类似的东西?
发布于 2017-03-16 15:03:59
如果想导出默认的const/let,也可以这样做,而不是
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>);
发布于 2018-07-14 01:06:03
保罗分享的答案是最好的。要扩展更多内容,
每个文件只能有一个默认导出。而可以有多个常量导出。默认变量可以用任何名称导入,而常量变量可以用它的特定名称导入。
var message2 = 'I am exported';
export default message2;
export const message = 'I am also exported'
在导入端,我们需要像这样导入它:
import { message } from './test';
或
import message from './test';
在第一次导入时,将导入const变量,而在第二次导入时,将导入默认变量。
发布于 2017-09-02 00:19:00
保罗的答案就是你要找的那个。但是,作为一个实际问题,我想您可能会对我在自己的React+Redux应用程序中使用的模式感兴趣。
下面是我的一条路径中的一个简化示例,展示了如何定义组件并使用一条语句将其导出为默认组件:
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 )
看起来干净多了
https://stackoverflow.com/questions/36261225
复制相似问题