2016-08-04 136 views
2

我有这个问题,我试着用反应呈现HTMLDivElement,但是我得到以下错误:渲染HTMLDivElement在阵营

Uncaught Invariant Violation: Objects are not valid as a React child (found: [object HTMLDivElement]). If you meant to render a collection of children, use an array instead or wrap the object using createFragment(object) from the React add-ons. Check the render method of `VirtualList` 

在我的阵营组件类我有这样的代码...

import React, { Component } from 'react'; 

export default class VirtualList extends Component { 

    constructor(props) { 
     super(props); 

     this.container = document.createElement('div'); 
    } 

    renderList() { 
     let container = this.container; 

     // Manipulate container etc. 

     return container; 
    } 

    render() { 

     return (
      <div> 
       {this.renderList()} 
      </div> 
     ) 
    } 
} 

帮助将不胜感激!

+1

请问您为什么要使用'document.createElement'? –

+0

这不是对付dom的反应方式。 –

+1

@AlexanderT。我编写了一些带有一些逻辑的普通JavaScript代码,因此我想从某种意义上说,将代码移植到React中,并认为您可以呈现HTMLDivElement对象 – slim1801

回答

1

DOCS:

ReactElements不与DOM元素相混淆。

您可以通过React.createElement创建React元素。

this.container = React.createElement('div');