2016-08-04 36 views
2

Ich habe dieses Problem, wo ich versuche, eine HTMLDivElement zu machen Reagieren Sie verwenden, jedoch bekomme ich folgende Fehlermeldung:Render HTMLDivElement in React

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` 

In meiner Reaktion Klasse Component ich diesen Code haben ...

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> 
     ) 
    } 
} 

Hilfe wäre sehr zu schätzen!

+1

Können Sie erklären, warum Sie 'document.createElement' verwenden möchten? –

+0

Es ist nicht die Art und Weise, mit Dom umzugehen. –

+1

@AlexanderT. Ich habe einen einfachen Javascript-Code mit einer Menge Logik dahinter geschrieben, also wollte ich in gewisser Weise diesen Code in React portieren, da ich dachte, man könnte das HTMLDivElement-Objekt einfach rendern – slim1801

Antwort

1

DOCS:

ReactElements sind mit DOM-Elemente nicht zu verwechseln.

Sie können React Element über React.createElement erstellen.

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