reactjs - React/Redux 应用程序中的导入问题
问题描述
我正在为 React/Redux 项目使用 Rails 风格的组织,但我遇到了一个我无法弄清楚的导入问题。
我有一个constants
带有模块索引(index.js)的目录,如下所示:
import * as types from './ActionTypes';
export default types;
(我所有的动作创建者都在./ActionTypes
。)
然后我有一个actions/index.js
文件,我在其中导入了我的操作所需的所有常量(为简洁起见,我只包含了一个操作创建者):
import * as c from './../constants';
...
export const toggleForm = () => ({
type: c.TOGGLE_FORM
});
我已经彻底测试了所有 reducer 和 action creators - 所有测试都通过了,没有导入问题。
但是,在我重构为使用动作创建器之前正在运行的 React 应用程序中,我遇到了以下问题,并且我的项目无法编译:Attempted import error: 'TOGGLE_FORM' is not exported from './../constants' (imported as 'c').
如果我指定应该导入常量(绕过我actions/index.js
的import * as c from './../constants/ActionTypes.js';
常量目录的模块索引) - React 应用程序可以正确编译,但我的动作创建者的测试会中断。
我在这里想念什么?
解决方案
删除
import * as types from './ActionTypes';
export default types;
而是像这样将所有操作导出为 const
// user authentication actions
export const SET_USER = 'SET_USER'
export const CLEAR_USER = 'CLEAR_USER'
export const VERIFY_USER = 'VERIFY_USER'
它现在应该可以工作了
推荐阅读
- c# - 无法将整数文本文件读入整数数组
- javascript - 如何在 Enter 按键上操作列表元素
- collision-detection - 如何获得与 SAT 的碰撞点
- php - 我如何解决这个 Cors 问题。我真的被困住了
- c# - 如何更改 C# 表单中的标签文本
- c# - 为什么在单元测试控制器方法时未初始化 IObjectMapper?
- react-native - 如何在 React Native 中优化图像并查看最新的 iPhone 机型
- c# - 通过 SceneManager 加载菜单
- r - 使用变量向量重命名数据框
- django - Django:通过表单向另一台服务器发送发布请求