[解决]TypeError: this.getOptions is not a function

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[解决]TypeError: this.getOptions is not a function相关的知识,希望对你有一定的参考价值。

参考技术A 在开发 Vue 项目时,安装了 sass-loader 后,项目出现以下报错

然后翻阅了 sass-loader 的 github [ https://github.com/webpack-contrib/sass-loader/releases/tag/v11.0.0 ]
发现 sass-loader@11.0.0 版本需要 webpack@5.0.0 ,而 @vue/cli@4.5.0 所用的是 webpack@4 ,所以需要将 sass-loader 的版本降到11以下

everything is fine!

TypeError:无法读取未定义的属性“地图”。找不到解决办法

【中文标题】TypeError:无法读取未定义的属性“地图”。找不到解决办法【英文标题】:TypeError: Cannot read property 'map' of undefined. Can't find a solution 【发布时间】:2021-03-30 04:10:43 【问题描述】:

代码编译成功,但在 localhost 上出现错误:TypeError: Cannot read property 'map' of undefined.

import React from 'react';
    
    const Module = (props) => 
        const courses = props.courses;
        console.log(props.courses);
        let Course = courses.map(item=><li>item</li>)
        
        return(
            <ul>Course</ul>
        )
    
    
    export default Module;

【问题讨论】:

那么认为 props.courses 是什么?有没有调试过? 【参考方案1】:

似乎props.courses 在某些时候是未定义的;可能在异步加载数据之前。

你有几个选择!

选项 1: 默认 courses 为空数组。这将解决错误,但可能会使用户感到困惑,因为加载状态不清楚

const Module = (props) => 
  const courses = props.courses || [];
  console.log(props.courses);
  let Course = courses.map(item=><li>item</li>)
  return(
    <ul>Course</ul>
  )

选项 2: 仅在数据存在时对其进行映射;否则显示加载指示器。这可能对用户体验更好。

const Module = (props) => 
  const courses = props.courses;

  if (!courses) 
    return "Loading...";
  

  let Course = courses.map(item=><li>item</li>)
  return(
    <ul>Course</ul>
  )

【讨论】:

【参考方案2】:

确保props 包含数据:

import React from 'react';

const Module = (props) => 
    const  courses  = props;
    const Course = courses && courses.length > 0 ? courses.map(item=><li>item</li>) : null;
    return Course ? (<ul>Course</ul>) : null;


export default Module;

【讨论】:

【参考方案3】:

您可以使用解构,以及默认参数来防止上述错误,并减少代码。

const Module = (courses = []) => 
    console.log(courses);
    return <ul>
        courses.map(item=><li>item</li>)
    </ul>;
;

【讨论】:

以上是关于[解决]TypeError: this.getOptions is not a function的主要内容,如果未能解决你的问题,请参考以下文章

TypeError: Cannot read property 'scrollIntoView' of null 如何解决?

TypeError:无法读取未定义的属性“地图”。找不到解决办法

如何解决“TypeError:process.getuid 不是函数”

将 Bot 部署到 Heroku 时如何解决 TypeError?

如何解决:TypeError:null 不是对象(评估“AgoraRtcChannelModule.prefix”)?

有没有办法解决这个 TypeError