从对象值渲染React元素

我想创建一个对象:

import React from "react";
import { Registration } from "../../";

const RouteObj = {
  Registration: {
    route: "/registration",
    comp: <Registration />
  }
};
export default RouteObj;

然后,在第二次文件调用中:

import React from 'react';
import RouteObj from ...

class Thing extends React.Component{
  render() {
    <RouteObj.Registration.comp />
  }
}

尝试此操作时,出现错误:

React.createElement:类型无效 - 预期为字符串(对于内置组件)或类/函数(对于复合组件),但得到:未定义。 您可能忘记将组件从其定义的文件中导出。

是否有可能以这种方式呈现React组件?


Registration已经是一个标签(一个组件),这就是为什么我猜你必须使用大括号。

import React from 'react';
import RouteObj from ...

class Thing extends React.Component{
  render() {
    <div>
      {RouteObj.Registration.comp}
    </div>
  }
}

  • 您必须正确导出RouteObj ,作为默认导出。
  • 因此,在声明RouteObj之后添加:

    export default RouteObj;
    

    你正在尝试使用你没有输出的东西,正如错误所述。 因此它是不确定的。

  • 您不能从元素创建元素,您需要从组件类创建元素。 相反,您必须将RouteObj.comp设置为Registration ,即组件类本身,而不是Registration <Registration />的实例。
  • 所以,相反,这是comp应该是:

    comp: Registration
    
    链接地址: http://www.djcxy.com/p/52185.html

    上一篇: Render React element from object value

    下一篇: select component, not rendering