Javascript 反应本机和redux操作
SomeAction不是一个函数。(在“SomeAction()”中,“SomeAction”未定义) 当我执行SomeAction函数时,我得到了这个错误 如果我在我的动作文件中只有一些动作,我会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 = () =>
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:)是的,谢谢你的回复。我不知道为什么我做了双重默认导出。这是一个愚蠢的错误。没问题,这是经常发生的。