【问题标题】:React: Element type is invalid: expected a string (for built-in components) or a class/function (for composite components) but got: object反应:元素类型无效:期望一个字符串(对于内置组件)或一个类/函数(对于复合组件)但得到:对象
【发布时间】:2019-02-14 19:38:54
【问题描述】:

我正在学习 React,但遇到了这个错误

元素类型无效:应为字符串(用于内置组件)或类/函数(用于复合组件)但得到:对象。

我已经检查了与类似错误相关的所有先前问题,但无法找出问题所在。这是我的代码:

import React from 'react'
import classes from './BuildControls.css'
import BuildControl from './BuildControl/BuildControl.css'

const controls = [
    {label: 'Salad',type: 'salad'},
    {label: 'Bacon',type: 'bacon'},
    {label: 'Cheese',type: 'cheese'},
    {label: 'Meat',type: 'meat'},
];

const buildControls = (props) => (
    <div className={classes.buildControls}>
        {controls.map(ctrl => (
            <BuildControl 
                key={ctrl.label} 
                label={ctrl.label}
                added={() => props.ingredientAdded(ctrl.type)}
                 />
        ))}       
    </div>
);

export default buildControls;

这是包含错误的文件。提前致谢

【问题讨论】:

    标签: reactjs


    【解决方案1】:

    您正在将 BuildControl 样式表 导入为 BuildControl 并尝试使用它来创建 BuildControl 元素。您需要改为 import BuildControl from './BuildControl/BuildControl.jsx'(假设这是您的组件的文件名和位置)。

    要在父组件中渲染子组件,需要导入子组件的JS文件。

    附带说明,在命名组件时始终使用pascal case(例如“BuildControls”)是一种常见的做法。

    【讨论】:

    • 男人!那真是一个愚蠢的错误……我没有注意那些导入语句。我只关注以下几行。谢谢老哥!
    猜你喜欢
    • 2019-09-06
    • 1970-01-01
    • 2020-05-09
    • 1970-01-01
    • 1970-01-01
    • 2018-02-05
    • 2018-02-19
    • 2016-09-05
    • 1970-01-01
    相关资源
    最近更新 更多