首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >如何解决未定义的TypeError:类扩展值未定义不是构造函数或null?

如何解决未定义的TypeError:类扩展值未定义不是构造函数或null?
EN

Stack Overflow用户
提问于 2022-05-19 10:52:23
回答 1查看 1.6K关注 0票数 0

我正在尝试将状态从表单输入传递到最近的父组件,然后返回到我的应用程序中的另一个子组件。我想要将状态提升到的父组件是一个函数,将“闪存卡”作为一种非结构化的支柱,这对于我的应用程序的功能至关重要。我试图将状态提升到这个组件,在研究如何实现这个过程时,我注意到您提升状态的父组件必须是一个"Class‘组件’扩展React.Component“,当我这样做时,我不能使用‘闪存卡’作为一个去结构化的支柱,因为我得到了错误"Uncaught : Class扩展未定义的值不是构造函数,或者是Module.options.factory上的null ../src/FlashcarList.js (FlashcardList.js:6:1)”(响应刷新:6:1)“如何更改FLashcardList”组件,以便它可以接受闪存卡、道具以及构造函数中的绑定。以下是我将FlashcardList.js文件更改为类扩展表单后的样子:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import React from 'react'
import Flashcard from './Flashcard'
import NameForm from './NameForm'
import flashcards from './App'

export default class FLashcardList extends React.Component ({ flashcards }) {
  // taking in the flashcards as destructured props so we dont have to make a props. variable
  constructor(props) {
    super(props);
    this.state = {username: ''};
    this.handleChange = this.handleChange.bind(this);
  }
  handleChange = (event) => {
    this.setState({username: event.target.value});

  }

  render() {

      return (
        <div>
        <NameForm onChoose={this.handleChange} />

        
        <div className='card-grid'> 

          {flashcards.map(flashcard => { // loops through the flashcards api and maps each one to flashcard

  return <Flashcard flashcard={flashcard} key={flashcard.id} choice={this.state.username} /> // each flashcard is then passed down to the "Flashcard.js" component we created returned w a unique id
  })}
        </div>
      </div>
    )
  }

}

这是我改变它之前的样子:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import React from 'react'
import Flashcard from './Flashcard'

export default function FLashcardList({ flashcards }) {
  // taking in the flashcards as destructured props so we dont have to make a props. variable
  return (

    // card-grid is a container so we can put all the cards in a grid to ensure they change in size proportionally to the size of the window //
    <div className='card-grid'> 

      {flashcards.map(flashcard => { // loops through the flashcards api and maps each one to flashcard

          return <Flashcard flashcard={flashcard} key={flashcard.id} /> // each flashcard is then passed down to the "Flashcard.js" component we created returned w a unique id
      })}
    </div>
  )
}
EN

回答 1

Stack Overflow用户

发布于 2022-05-19 11:11:52

React.Component是类,而不是函数。你必须把它定义为:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
export default class FLashcardList extends React.Component {
  ....
}

如果您想从道具中呈现闪存卡,您可以这样做:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
render() {
   return this.props.flashcards.map( // .... )
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72309727

复制
相关文章
关于MATLAB中M文件如何解决“未定义函数或变量”的若干办法
在本问题提供解决办法前,整个过程先引入一个实例可以更好地说明这个问题: 例:从键盘输入一个4位数,按如下规则加密后输出。加密规则:每位数字都加上7,然后用和除以10的余数取代该数字;再把第一位与第三位交换,第二位与第四位交换。 解: 函数文件:
荣仔_最靓的仔
2021/02/02
12.4K0
关于MATLAB中M文件如何解决“未定义函数或变量”的若干办法
解决调用未定义 swoole_async_readfile函数问题
https://github.com/swoole/swoole-src/issues/2439
全栈程序员站长
2022/07/11
4K0
解决调用未定义 swoole_async_readfile函数问题
C/C++未定义行为
下面是一段代码,这段代码中有标准未定义的行为。代码如下: #include<iostream> using namespace std; int main() { int j = 0;
zy010101
2020/04/16
3.7K0
优雅地创建未定义类PHP对象
在PHP中,如果没有事先准备好类,需要创建一个未定义类的对象,我们可以采用下面三种方式:
硬核项目经理
2019/11/21
2.8K0
1000多个项目中的十大JavaScript错误以及如何避免
通过统计数据库中的1000多个项目,我们发现在 JavaScript 中最常出现的错误有10个。下面会向大家介绍这些错误发生的原因以及如何防止。
一墨编程学习
2018/10/20
6.2K0
c++使用了未定义类型_c++如何新建
第一个参数是一个指向SECURITY_ATTRIBUTES结构体的指针,一般的情况下,可以是nullptr。
全栈程序员站长
2022/11/09
2.7K0
10 种 JavaScript 最常见的错误
查看了数千个项目后,发现了 10 个最常见的 JavaScript 错误。我们会告诉你什么原因导致了这些错误,以及如何防止这些错误发生。如果你能够避免落入这些 “陷阱”,你将会成为一个更好的开发者。
小生方勤
2019/06/26
8.6K0
10 种 JavaScript 最常见的错误
1000多个项目中的十大JavaScript错误以及如何避免
通过统计数据库中的1000多个项目,我们发现在 JavaScript 中最常出现的错误有10个。下面会向大家介绍这些错误发生的原因以及如何防止。 对于这些错误发生的次数,我们是通过收集的数据统计得出的
葡萄城控件
2018/03/27
8.4K0
1000多个项目中的十大JavaScript错误以及如何避免
10 种最常见的 Javascript 错误
英文:SKOWRONSKI 译文:elevenbeans elevenbeans.github.io/2018/02/05/top-10-javascript-errors/ 为了回馈我们的开发者社区,我们查看了数千个项目的数据库,发现了 JavaScript 中频度最高的 10 种错误。我们会告诉你什么原因导致了这些错误,以及如何防止这些错误发生。如果你能够避免落入这些 “陷阱”,你将会成为一个更好的开发者。 数据才是王道,我们收集并分析了出现频次排前 10 的 JavaScript 错误。 Rollb
前端教程
2018/03/05
6.9K0
10 种最常见的 Javascript 错误
1000个项目中前10名的JavaScript错误介绍
为了回馈我们的开发者社区,我们查看了数千个项目的数据库,发现了 JavaScript 中频度最高的 10 种错误。我们会告诉你什么原因导致了这些错误,以及如何防止这些错误发生。如果你能够避免落入这些 “陷阱”,你将会成为一个更好的开发者。 数据才是王道,我们收集并分析了出现频次排前 10 的 JavaScript 错误。 Rollbar 会收集每个项目的所有错误,并总结每个错误发生的次数。我们通过根据 “指纹”(rollbar 用到的一种算法,详见:https://rollbar.com/docs/gr
程序你好
2018/07/20
6.3K0
来自1000多个项目的10大JavaScript错误浅析
出于可读性方面的考虑,每个错误的描述经过精简。 1.Uncaught TypeError: Cannot read property 如果你是一名JavaScript开发者,对这个错误可能已经熟视无睹。在Chrome里读取未定义对象的属性或调用未定义对象的方法时就会发生这个错误,在Chrome开发者控制台可以很容易地重现这个错误。 发生这个错误的原因有很多,其中最为常见的是,在渲染UI组件时没有正确初始化状态。我们通过一个真实的例子来看看这个错误是怎么发生的。我们选择React作为示例,不过在其
用户1263954
2018/03/20
6.3K0
来自1000多个项目的10大JavaScript错误浅析
javaScript代码飘红报错看不懂?读完这篇文章再试试!
2、TypeError(类型错误):变量或参数不是预期类型,或调用对象不存在的属性方法。错误之前的代码会执行,之后代码不会执行。
用户1272076
2020/08/17
5.5K0
null或空值的判断处理
1,错误用法一: if (name == "") {      //do something } 2,错误用法二: if (name.equals("")) {      //do something } 3,错误用法三: if (!name.equals("")) {      //do something } 我们来解说一下: 上述错误用法1是初学者最容易犯,也最不容易被发现的错误,因为它们的语法本身没问题,Java编译器编译时不报错。但这种条件可能在运行时导致程序出现bug,永远也不会为true,也就是时说,if块里的语句永远也不会被执行。 上述用法二,用法三 的写法,是包括很多Java熟手也很容易犯的错误,为什么是错误的呢?也许你会感到纳闷。 对,它们的写法本身没错,但是,少了一个null判断的条件,试想,如果name=null的情况下,会发生什么后果呢?后果是,你的程序将抛出NullPointerException异常,系统将被挂起,不再提供正常服务。 当然,如果之前已经对name作了null判断的情况例外。 正确的写法应该先加上name != null的条件,如例: if (name != null && !name.equals("")) {      //do something } 或者 if (!"".equals(name)) {//将""写在前头,这样,不管name是否为null,都不会出错。      //do something } 下面,我们举一个简单的例子: TestNullOrEmpty.java
似水的流年
2018/01/14
3.1K0
null或空值的判断处理
1,错误用法一: if (name == "") {      //do something } 2,错误用法二: if (name.equals("")) {      //do something } 3,错误用法三: if (!name.equals("")) {      //do something } 我们来解说一下: 上述错误用法1是初学者最容易犯,也最不容易被发现的错误,因为它们的语法本身没问题,Java编译器编译时不报错。但这种条件可能在运行时导致程
似水的流年
2018/01/18
3.6K0
null或空值的判断处理
1,错误用法一: if (name == "") {      //do something } 2,错误用法二: if (name.equals("")) {      //do something } 3,错误用法三: if (!name.equals("")) {      //do something } 我们来解说一下: 上述错误用法1是初学者最容易犯,也最不容易被发现的错误,因为它们的语法本身没问题,Java编译器编译时不报错。但这种条件可能在运行时导致程序出现bug,永远也不会为true,也就是时说,if块里的语句永远也不会被执行。 上述用法二,用法三 的写法,是包括很多Java熟手也很容易犯的错误,为什么是错误的呢?也许你会感到纳闷。 对,它们的写法本身没错,但是,少了一个null判断的条件,试想,如果name=null的情况下,会发生什么后果呢?后果是,你的程序将抛出NullPointerException异常,系统将被挂起,不再提供正常服务。 当然,如果之前已经对name作了null判断的情况例外。 正确的写法应该先加上name != null的条件,如例: if (name != null && !name.equals("")) {      //do something } 或者 if (!"".equals(name)) {//将""写在前头,这样,不管name是否为null,都不会出错。      //do something } 下面,我们举一个简单的例子: TestNullOrEmpty.java
似水的流年
2019/12/08
3.5K0
SharePoint 2010 在WebPart页面上调用扩展方法报方法未定义的解决方案
SharePoint 2010是基于.NET 3.5的,但是微软一直是神坑,页面前台居然不支持扩展方法,也就是你可以在后台代码里面使用扩展方法,但是不能在前台页面 上逍遥,否则会打回原型,比如在WebPart页面上加入如下代码:
雪雁-心莱科技
2018/12/27
1.2K0
7个处理JavaScript值为undefined的技巧
译文 | https://www.zcfy.cc/article/7-tips-to-handle-undefined-in-javascript-dmitri-pavlutin
winty
2020/07/28
6.1K0
7个处理JavaScript值为undefined的技巧
我刚刚开始学习JavaScript时,大约是八年前,当时我对于undefined 和 null 比较困惑 ,因为他们都表示空值。
王小婷
2020/10/26
3.4K0
ThinkPHP报错“未定义数组索引”原因与解决方法
但是,大家有必要知道:thinkphp这个文件夹是框架的核心目录,一般我们是没必要修改的。要是框架核心文件报错,有可能是PHP版本的问题。
阿哲
2022/03/13
7.3K0
点击加载更多

相似问题

TypeError:未定义的类扩展值不是构造函数或null

11

Reactjs TypeError:类扩展值未定义不是构造函数或null

32

npm TypeError:未定义的类扩展值不是构造函数或null

11

TypeError:类扩展未定义的值不是构造函数或null (svelte )

27

类sendAPICallback扩展dAPIMessage {^ TypeError:未定义的类扩展值不是构造函数或null

17
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文