Javascript 反应本机和redux操作

Javascript 反应本机和redux操作,javascript,react-native,redux,Javascript,React Native,Redux,SomeAction不是一个函数。(在“SomeAction()”中,“SomeAction”未定义) 当我执行SomeAction函数时,我得到了这个错误 如果我在我的动作文件中只有一些动作,我会 export default SomeAction; 然后按如下方式导入 import SomeAction from 'path/to/action' 它很好用。但是由于我需要不止一个函数,所以我做了以下工作 这是我的Actions.js const SomeAction = () =>

SomeAction不是一个函数。(在“SomeAction()”中,“SomeAction”未定义)

当我执行SomeAction函数时,我得到了这个错误

如果我在我的动作文件中只有一些动作,我会

export default SomeAction;
然后按如下方式导入

import SomeAction from 'path/to/action'
它很好用。但是由于我需要不止一个函数,所以我做了以下工作

这是我的Actions.js

const SomeAction = () => dipatch => ({
    // Code here
});

const AnotherAction = () => dispatch => ({
    // Code here
});

export default { SomeAction, AnotherAction };
然后在我的App.js中

import { SomeAction } from 'path/to/action';
// Here the eslint gives me an error -> 'SomeAction not found in "path/to/action"'

const App = ({ SomeAction }) => {
   // Code here
};

App.propTypes = {
    SomeAction: PropTypes.func,
}

const mapStateToProps = state => ({
    error: state.user.error,
});

export default connect(
    mapStateToProps,
    { SomeAction }
)(App);

这在我编写的React web应用程序上起作用。为什么不使用React Native?

回顾一下,我发现您默认导出两种方法。正常实现是一种方法。另一种解决方案是逐个导出方法,并用它们的名称导入它们

导出示例:

export const SomeAction = () => dipatch => ({
    // Code here
});

export const AnotherAction = () => dispatch => ({
    // Code here
});
导入示例:

import { SomeAction, AnotherAction } from 'path/to/action';
此示例是导出和导入函数的常规方法

不能导出两个默认方法

export const SomeAction = () => dipatch => ({
//此处编码

}

export const AnotherAction = () => dispatch => ({
//此处编码

}

export const AnotherAction = () => dispatch => ({
它们将在您的应用程序组件中提供,如下所示:

import { SomeAction , AnotherAction} from 'path/to/action';
导入Defautl导出如下所示

import { SomeAction } from 'path/to/action'; or import SomeAction from 'path/to/action';

只需使用此abpve导出常量方式

只需像这样导出{SomeAction,AnotherAction};,意味着没有default@AlexShtromberg是的,这似乎很有效。但是为什么会这样呢?可能这是你第一次体验js:)是的,谢谢你的回复。我不知道为什么我做了双重默认导出。这是一个愚蠢的错误。没问题,这是经常发生的。