在ArkTs中使用axios出错的问题?

我安装了axios,但是我在代码中导入axios一旦出错“axios.get”的字样就出下面的错误:
image.png

Compile Result]  The regular property 'item' cannot be assigned to the @ObjectLink property 'item'.  
[Compile Result] [webpack-cli] TypeError: Cannot read properties of undefined (reading 'replace')
[Compile Result]     at processNodeModulesFile (D:\huawei\SDK\openharmony\9\ets\build-tools\ets-loader\lib\gen_abc_plugin.js:1:8295)
[Compile Result]     at processJsModule (D:\huawei\SDK\openharmony\9\ets\build-tools\ets-loader\lib\gen_abc_plugin.js:1:10445)
[Compile Result]     at D:\huawei\SDK\openharmony\9\ets\build-tools\ets-loader\lib\gen_abc_plugin.js:1:13831
[Compile Result]     at Set.forEach (<anonymous>)
[Compile Result]     at handleFullModuleFiles (D:\huawei\SDK\openharmony\9\ets\build-tools\ets-loader\lib\gen_abc_plugin.js:1:13052)
[Compile Result]     at GenAbcPlugin.handleFinishModules (D:\huawei\SDK\openharmony\9\ets\build-tools\ets-loader\lib\gen_abc_plugin.js:2:3272)
[Compile Result]     at Hook.eval [as callAsync] (eval at create (D:\huawei\SDK\openharmony\9\ets\build-tools\ets-loader\node_modules\webpack\node_modules\tapable\lib\HookCodeFactory.js:33:10), <anonymous>:40:1)
[Compile Result]     at Hook.CALL_ASYNC_DELEGATE [as _callAsync] (D:\huawei\SDK\openharmony\9\ets\build-tools\ets-loader\node_modules\webpack\node_modules\tapable\lib\Hook.js:18:14)
[Compile Result]     at Compilation.finish (D:\huawei\SDK\openharmony\9\ets\build-tools\ets-loader\node_modules\webpack\lib\Compilation.js:2714:28)
[Compile Result]     at D:\huawei\SDK\openharmony\9\ets\build-tools\ets-loader\node_modules\webpack\lib\Compiler.js:1182:19

下面是我的代码:我什么都没敢写,我发现只要出现axios就会有上面的错误?

getShopListAxios():Promise<ShopInfo[]>{
    return new Promise((resolve,reject)=>{
      axios.get(
        `${this.baseURL}/shops`,
        {
          params:{pageNo:this.pageNo,pageSize:3}
        }
      )
    })
  }
本文参与了思否 HarmonyOS 技术问答马拉松,欢迎正在阅读的你也加入。
阅读 1.9k
avatarAI BotBETA

看起来你在使用 ArkTs(可能是你想说的 TypeScript)和 axios,但是你的代码在编译时出现了错误。从你给出的错误信息来看,问题似乎与 webpack 和 ets-loader 有关,而不是与 axios 或 TypeScript 直接相关。

错误提示 "The regular property 'item' cannot be assigned to the @ObjectLink property 'item'." 和 "TypeError: Cannot read properties of undefined (reading 'replace')" 指向了 ets-loader 在处理模块文件时遇到了问题。ets-loader 是 OpenHarmony 的一部分,用于将 TypeScript 转换为 JavaScript,以便在 OpenHarmony 的环境中运行。

这个错误可能是由于以下原因造成的:

  1. ets-loader 版本不兼容:你可能正在使用的 ets-loader 版本与你的项目或依赖项不兼容。尝试更新或降级 ets-loader 到一个兼容的版本。
  2. TypeScript 配置问题:检查你的 tsconfig.json 文件,确保它的配置是正确的。特别是,你需要确保 "module" 选项设置为 "es6" 或 "commonjs",并且 "target" 选项设置为 "es5" 或更高。
  3. webpack 配置问题:你的 webpack 配置可能有问题,特别是与 ets-loader 的配置有关。检查 webpack 的配置文件,确保 ets-loader 的配置是正确的。

关于 axios,你的代码看起来是正确的。axios.get 的调用没有问题,所以问题可能出在其他地方。我建议你尝试以下步骤来解决这个问题:

  • 确保你已经正确安装了 axios,并且版本与你的项目兼容。
  • 检查你的 TypeScript 和 webpack 配置,确保它们都是正确的。
  • 尝试在一个简单的 TypeScript 项目中使用 axios,看看是否还会出现同样的问题。这可以帮助你确定问题是否与 axios 或你的项目设置有关。

希望这些信息能帮助你解决问题。如果你需要更具体的帮助,例如如何更新 ets-loader 或修改 webpack 配置,你可以提供更多的信息,我会很乐意帮助你。

1 个回答
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题