【问题标题】:React native index.js with redux用 redux 反应原生 index.js
【发布时间】:2017-05-23 13:56:27
【问题描述】:

我是 React 和 React native 的新手。

我有一个包含多个组件的文件夹,我已经能够创建一个 index.js 文件来导出文件夹内的所有组件,所以在其他组件中我可以这样做:

# /components/OneComponent.js
...
export { OneComponent }

# index.js
import { OneComponent } from './components'
```

现在我正在使用 Redux,我想完成同样的事情,但我不知道该怎么做。在我的组件中,我按如下方式导出组件:

# /component/OneComponent.js
export default connect(mapStateToProps, { myFunction})(OneComponent);

我猜应该是这样的

export { connect(mapStateToProps, { myFunction})(OneComponent) };

但它不能编译。

【问题讨论】:

  • 你试过export default connect(mapStateToProps, myFunction)(OneComponent);
  • 是的,如果我这样做,当我这样做 import { OneComponent } from './components' 时,它是未定义的。

标签: javascript reactjs react-native redux react-redux


【解决方案1】:

刚刚测试过了。

您可以通过将连接调用的结果分配给一个常量来解决您的错误,然后像这样导出该常量。

const comp1 = connect(mapStateToProps)(MyComponent);

export {comp1 as MyComponent};

【讨论】:

    【解决方案2】:

    从索引中导出组件时,您需要像这样导出它们:

    export {connect(mapStateToPops,mapDispatchToProps)(ComponentName)}

    然后在你的 index.js 中: export * from 'YourComponentRoute

    请记住,如果您导出为默认值,您将导出一个唯一对象的实例。如果您导出 {},则您正在导出对象的“副本”。

    【讨论】:

    • 嗨,如果我在组件 js 文件中执行此导出,我会在连接的括号中收到一个 javascript 错误,上面写着“,预期”。 export { connect(mapStateToProps, { getSchedules })(SchedulesScreen) };
    【解决方案3】:

    我不认为问题出在 Redux,import 和 export ES6 方法很混乱。例如:

    • 示例 1(使用 export default):

    导出默认值时,不应使用 {}

    ## CORRECT
    # /components/OneComponent.js
    ...
    export default connect(mapStateToProps, { myFunction})(OneComponent);
    
    # index.js
    import AnyName from './components/OneComponent.js'
    
    ## WRONG
    # /components/OneComponent.js
    ...
    export default connect(mapStateToProps, { myFunction})(OneComponent);
    
    # index.js
    import { OneComponent } from './components/OneComponent.js'
    
    • 示例 2(没有export default):

    尝试命名您的对象键

    ##CORRECT
    # /components/OneComponent.js
    ...
    export { OneComponent: connect(mapStateToProps, { myFunction})(OneComponent) };
    
    # index.js
    import { OneComponent } from './components'
    
    ##WRONG
    # /components/OneComponent.js
    ...
    export { connect(mapStateToProps, { myFunction})(OneComponent) };
    
    # index.js
    //It wont find the key OneComponent on exported object
    import { OneComponent } from './components'
    

    【讨论】:

    • 第一个例子是我现在正在做的事情。第二个例子对我不起作用,我在两个点​​中收到一个错误,上面写着“,预期”export { SchedulesScreen: connect(mapStateToProps, { getSchedules })(SchedulesScreen) };
    • 嗨@Robsonsjre,我用基本代码创建了一个github repo,你能检查一下吗?谢谢! github.com/davidrojo/test-import
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-02-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-05-19
    相关资源
    最近更新 更多