热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

元素类型无效:期望字符串(对于内置组件)或类/函数ReactError

如何解决《元素类型无效:期望字符串(对于内置组件)或类/函数ReactError》经验,为你挑选了1个好方法。

当我尝试通过按钮更改页面时,我遇到了React的问题(但是)控制台给了我:

元素类型无效:期望一个字符串(对于内置组件)或>一个类/函数(对于复合组件)但得到:undefined.您>可能忘记从其定义的文件中导出组件.

但是当我把onClick代码放在类代码中时,它显示了jsx代码.所以它有效,但为什么我仍然得到错误?这是我的代码:

import React from 'react';
import {render} from 'react-dom';

//sass
require('../sass/style.scss');

var pages = ['Qrscan'];
var jsx = [];

class App extends React.Component {
    constructor (props) {
        super(props);
        this.state = {target: };
        App.changePage = App.changePage.bind(this);
    }

    static changePage (tar) {
       this.setState({target: tar});
    }

    render () {
        return (
          this.state.target
        )
    }
}


//Rendering
class Menu extends React.Component {
    render() {
        return (
            
) } } class Qrscan extends React.Component { render() { return (

test

) } } //elements class Header extends React.Component { render () { return (
Jukey
) } } class But extends React.Component { getInfo () { for (var i = 0; i App.changePage(this.getInfo())} className={this.props.class}>{this.props.text} ) } } render (, document.getElementById('app'));

感谢您抽出宝贵时间帮我解决问题!



1> Yangshun Tay..:

ES6类声明未被提升.

在您定义的第二行中var jsx = [];,该元素实际上是undefined.当我打印出jsx数组的内容时,我得到:

Object {$$typeof: Symbol(react.element), type: undefined, key: null, ref: null, props: Object…}

所以,你只需要的是转变jsx数组声明您的组件声明.

请参阅以下JSFiddle以获取修复,并在转移声明顺序后自行查看它是否有效(:

var pages = ['Qrscan'];

//Rendering
class Menu extends React.Component {
    render() {
        return (
            
) } } class App extends React.Component { constructor (props) { super(props); this.state = {target: }; App.changePage = App.changePage.bind(this); } static changePage (tar) { this.setState({target: tar}); } render () { return ( this.state.target ) } } class Qrscan extends React.Component { render() { return (

test

) } } var jsx = []; //elements class Header extends React.Component { render () { return (
Jukey
) } } class But extends React.Component { getInfo () { for (var i = 0; i App.changePage(this.getInfo())} className={this.props.class}>{this.props.text} ) } } ReactDOM.render (, document.getElementById('app'));



推荐阅读
  • Webpack5内置处理图片资源的配置方法
    本文介绍了在Webpack5中处理图片资源的配置方法。在Webpack4中,我们需要使用file-loader和url-loader来处理图片资源,但是在Webpack5中,这两个Loader的功能已经被内置到Webpack中,我们只需要简单配置即可实现图片资源的处理。本文还介绍了一些常用的配置方法,如匹配不同类型的图片文件、设置输出路径等。通过本文的学习,读者可以快速掌握Webpack5处理图片资源的方法。 ... [详细]
  • 本文介绍了如何使用Express App提供静态文件,同时提到了一些不需要使用的文件,如package.json和/.ssh/known_hosts,并解释了为什么app.get('*')无法捕获所有请求以及为什么app.use(express.static(__dirname))可能会提供不需要的文件。 ... [详细]
  • 导出功能protectedvoidbtnExport(objectsender,EventArgse){用来打开下载窗口stringfileName中 ... [详细]
  • React基础篇一 - JSX语法扩展与使用
    本文介绍了React基础篇一中的JSX语法扩展与使用。JSX是一种JavaScript的语法扩展,用于描述React中的用户界面。文章详细介绍了在JSX中使用表达式的方法,并给出了一个示例代码。最后,提到了JSX在编译后会被转化为普通的JavaScript对象。 ... [详细]
  • 从零基础到精通的前台学习路线
    随着互联网的发展,前台开发工程师成为市场上非常抢手的人才。本文介绍了从零基础到精通前台开发的学习路线,包括学习HTML、CSS、JavaScript等基础知识和常用工具的使用。通过循序渐进的学习,可以掌握前台开发的基本技能,并有能力找到一份月薪8000以上的工作。 ... [详细]
  • express工程中的json调用方法
    本文介绍了在express工程中如何调用json数据,包括建立app.js文件、创建数据接口以及获取全部数据和typeid为1的数据的方法。 ... [详细]
  • 这是原文链接:sendingformdata许多情况下,我们使用表单发送数据到服务器。服务器处理数据并返回响应给用户。这看起来很简单,但是 ... [详细]
  • 本文介绍了OC学习笔记中的@property和@synthesize,包括属性的定义和合成的使用方法。通过示例代码详细讲解了@property和@synthesize的作用和用法。 ... [详细]
  • 在说Hibernate映射前,我们先来了解下对象关系映射ORM。ORM的实现思想就是将关系数据库中表的数据映射成对象,以对象的形式展现。这样开发人员就可以把对数据库的操作转化为对 ... [详细]
  • 在springmvc框架中,前台ajax调用方法,对图片批量下载,如何弹出提示保存位置选框?Controller方法 ... [详细]
  • Spring常用注解(绝对经典),全靠这份Java知识点PDF大全
    本文介绍了Spring常用注解和注入bean的注解,包括@Bean、@Autowired、@Inject等,同时提供了一个Java知识点PDF大全的资源链接。其中详细介绍了ColorFactoryBean的使用,以及@Autowired和@Inject的区别和用法。此外,还提到了@Required属性的配置和使用。 ... [详细]
  • VueCLI多页分目录打包的步骤记录
    本文介绍了使用VueCLI进行多页分目录打包的步骤,包括页面目录结构、安装依赖、获取Vue CLI需要的多页对象等内容。同时还提供了自定义不同模块页面标题的方法。 ... [详细]
  • 本文介绍了Sencha Touch的学习使用心得,主要包括搭建项目框架的过程。作者强调了使用MVC模式的重要性,并提供了一个干净的引用示例。文章还介绍了Index.html页面的作用,以及如何通过链接样式表来改变全局风格。 ... [详细]
  • 本文介绍了响应式页面的概念和实现方式,包括针对不同终端制作特定页面和制作一个页面适应不同终端的显示。分析了两种实现方式的优缺点,提出了选择方案的建议。同时,对于响应式页面的需求和背景进行了讨论,解释了为什么需要响应式页面。 ... [详细]
  • Node.js学习笔记(一)package.json及cnpm
    本文介绍了Node.js中包的概念,以及如何使用包来统一管理具有相互依赖关系的模块。同时还介绍了NPM(Node Package Manager)的基本介绍和使用方法,以及如何通过NPM下载第三方模块。 ... [详细]
author-avatar
王碧婷568473
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有