当前位置: 首页 > 知识库问答 >
问题:

React - ShowRainBow.state:必须设置为object或null

陶永望
2023-03-14

我有两个组件。

  1. 彩虹。jsx
  2. 彩虹列表.jsx

雨弓.jsx 是具有数组和雨弓列表.jsx 的主要组件,我用它来用 map() 以 li 格式显示所有彩虹色。

我在控制台日志中得到错误消息ShowRainBow。状态:必须设置为对象或null

我的代码

彩虹. jsx

// Let's import React
import React from "react";

// Import custom component
import RainBowList from "./RainBowList.jsx";

// Let's create component [[ShowRainBow]]
class ShowRainBow extends React.Component{

    // constructor class
    constructor(){
        super();

        // use state with array
        let rainbowColor = this.state = ["red", "orange", "yellow", "green", "blue", "indigo", "violet"];

    }   

    render(){       

        return(
            <div className="row">

                <div className="col-12 col-sm-12 col-md-12 col-lg-12 col-xl-12">   
                    <RainBowList checkColor={this.state.rainbowColor} />
                </div>

            </div>
        );
    }
}

// Let's render ReactDOM
export default ShowRainBow;

RainBowList.jsx

// Let's import react
import React from "react";

// Let's create component [[RainBowList]]
class RainBowList extends React.Component{
    render(){
        return(
            <ul>
                <li> Show rainbow colors </li>
                {
                    this.props.checkColor.map( rainbowcolors =>{
                        return <li rainbowcolors={rainbowcolors} key={rainbowcolors}> {rainbowcolors} </li>
                    })
                }

            </ul>
        );
    }
}

// Let's render ReactDOM
export default RainBowList;

共有1个答案

鲁羽
2023-03-14

您必须将ShowRainBow组件的state设置为对象而不是数组,如下所示

constructor(){
       super();
       this.state = {rainbowColor: ["red", "orange", "yellow", "green", "blue", "indigo", "violet"]};
}   
 类似资料:
  • 我有以下简单的代码: 我得到了这个错误: "必须返回有效的React元素(或null)。您可能已返回未定义、数组或其他无效对象。"

  • 从0.13.2更新到0.14.2后,我发现以下错误: 对此已经有几个问题了。最常见的错误是拼错React.component(没有大写字母C)。另一个是尝试使用ES6类的版本 但我已经成功地使用了带有React 0.13.x的ES6类,我在所有地方都使用大写字母C,并且记录React.Component似乎给出了一个合适的结果(函数ReactComponent(…) 经过一些搜索,我做了这3个测试

  • 本文向大家介绍React必须使用JSX吗?相关面试题,主要包含被问及React必须使用JSX吗?时的应答技巧和注意事项,需要的朋友参考一下 首先解释一下什么是JSX,是JavaScript的语法扩展,可以让我们编写像html一样的代码,在JSX中使用的”元素“,不局限于HTML中的元素,可以是任何一个react组件。 react判断一个元素是HTML元素还是react 组件的原则就是看第一个字母是

  • 问题内容: @Entity public class A { @GeneratedValue @Id private long id; 建立关系,我必须打电话 为什么两者都是必要的,为什么仅仅做是不够的 要么 ? 该关系存储在联接表中,并将更新该联接表。 但是当我之后进行查询时,它为空。这是为什么? 这是一个测试案例,说明了这个问题。请注意,最后一个断言失败。 动机: 当数量增加时,通过更改“仅一

  • 我试图使用lxml.html将“defer”属性放入脚本标记中,但我得到了错误 TypeError:参数必须是字节或unicode,获得“NoneType” 或 TypeError:set()正好接受2个位置参数(给定1个) 如果我用 根据http://lxml.de/lxmlhtml.html .set(key,value=None):设置HTML属性。如果未给定值,或者该值为None,则会创建

  • 问题内容: 我使用React编写此演示。我使用Webpack来构建此演示。启动此演示时,错误将显示给我。 错误: 未捕获的TypeError:超级表达式必须为null或函数,且未定义 我不知道该怎么解决。 问题答案: 代码中的唯一警告是由于您没有扩展正确的类,而需要扩展。