首页 > 解决方案 > NextJs 中的 axios 响应中的类型“never”.ts(2339) 上不存在属性

问题描述

我正在做一个 NextJs 项目,我对 NextJs 很陌生。我在使用 Axios 时遇到了问题。我正在使用 VS 代码并试图访问(response.data.sliders),但我的编辑器显示错误。错误是“'never'.ts(2339) 类型上不存在属性'滑块'”。但是在执行了 console.log(response.data) 之后,我可以清楚地看到那里的“滑块”。我正在获取滑块数据,但 vs 代码显示错误。我对此感到非常沮丧,但突然间,当我想在这里问一个关于我的问题的问题时,我得到了解决方案,它对我来说神奇地起作用了!所以我想为什么不写下这个问题的解决方案,以便像我这样的其他人可以从中获得帮助。我将附上我的项目的屏幕截图和一个小代码片段,以便您清楚地了解我的问题。 这是 console.log(response.data) 的结果

这是我的代码。

import axios from "axios";
const IndexPage = (props) => {
  return (
    <main>
      <Section1 Section1Props={props.Section1Props} />
     
    </main>
  );
};


export async function getServerSideProps(context) {
  try {
    const response = await axios.get(urlGenerator("api/v1/frontend-configuration"));
    
    const data = await response.data;

    return {
      props: {
        Section1Props : data.sliders, // here I was getting the error for 'sliders'
        
      },
    }
    
  } catch (error) {
    console.log(error);
    
  }
  
}

export default IndexPage;

标签: javascriptaxiosnext.js

解决方案


最后我发现问题出在我的 axios import 语句中。我需要像这样导入 axios -

const { default: axios } = require('axios'); // or
const axios = require('axios').default;

而不是这个 -

import axios from "axios";

我不知道为什么它起作用了。我仍然感到很高兴,希望它也对你有所帮助。如果您知道它为什么起作用,请在此处解释。这对我理解整个事情会有帮助。


推荐阅读