首页 > 解决方案 > 在 React 中缩短导入

问题描述

我决定在我的反应应用程序中缩短我的导入。所以我配置了jsconfig.json.

我的问题是它在导入时出错。

Failed to compile. ./src/actions/appActions.js
Module not found: Can't resolve '@constants' 

请参阅下面的代码。

回购协议

https://drive.google.com/drive/folders/1rp5AagwvMyBRbhb4svHUqyCYH3ROA-L3?usp=sharing

jsconfig.json

 {
  "compilerOptions": {
    "baseUrl": ".",
    "paths": {
      "@components": ["src/components"],
      "@actions": ["src/actions"],
      "@constants": ["src/constants"],
      "@constants/*": ["src/constants/*"],
      "@services": ["src/services"],
      "@assets": ["src/assets"]
    }
  }
}

appActions.js

import { appConstants } from '@constants';

export const setAPIErrorMessage = (error) => {
  return {
    type: appConstants.SET_API_ERROR_MESSAGE,
    payload: error,
  };
};

export const setAPISuccessMessage = (error) => {
  return {
    type: appConstants.SET_API_SUCCESS_MESSAGE,
    payload: error,
  };
};

常量 > index.js

export * from './authConstants';
export * from './appConstants';

常量 > appConstants.js

export const appConstants = {
  SET_API_ERROR_MESSAGE: 'SET_API_ERROR_MESSAGE',
  SET_API_SUCCESS_MESSAGE: 'SET_API_SUCCESS_MESSAGE',
};

在此处输入图像描述

标签: javascriptreactjsecmascript-6react-hooks

解决方案


你写"@constants/*": ["src/constants/*"],,但从导入import appConstants from '@constants';。据我了解,匹配器期望@constants...

尝试使用类似的东西

import { appConstants } from '@constants/appConstants';

或者将您的 jsconfig 文件编辑为类似

"@constants": ["src/constants"],

推荐阅读