2015-08-03 10 views
5

È possibile creare un oggetto elemento di risposta manualmente senza utilizzare react.createElement.Creare manualmente un elemento reattivo Oggetto con streaming

L'idea è di creare un albero di elementi reattivi nidificati durante lo streaming da html. Il problema è che non sono a conoscenza di bambini nidificati durante lo streaming.

Il mio obiettivo è essere in grado di creare un elemento di reazione da un oggetto nidificato. vale a dire:

{ 
   "tag": "div", 
   "attribs": {}, 
   "children": [ 
      { 
         "tag": "p", 
         "attribs": {}, 
         "children": [], 
         "text": "test" 
      }, 
      { 
         "tag": "div", 
         "attribs": {}, 
         "children": [ 
            { 
               "tag": "p", 
               "attribs": {}, 
               "children": [], 
               "text": "hi" 
            } 
         ] 
      } 
   ] 
} 
+0

Dovrai creare un componente che gestisca il json passato e crea nuovi elementi. – zackify

risposta

-2

È inoltre possibile creare componenti nidificati utilizzando React.createElement, ma è necessario seguire una sintassi speciale per raggiungere questo obiettivo.

tag deve essere type e attribs devono essere props, ma si può iterare l'oggetto e rinominare quelle chiavi, se necessario, in modo che non è questo il problema.

Ora avere qualcosa di simile:

var data = { 
    "type": "div", 
    "props": {anyProp: true}, 
    "children": [ 
     { 
     "type": "p", 
     "props": {}, 
     "children": [], 
     "text": "test" 
     }, 
     { 
     "type": "div", 
     "props": {}, 
     "children": [ 
      { 
       "type": "p", 
       "props": {}, 
       "children": [], 
       "text": "hi" 
      } 
     ] 
     } 
    ] 
} 

Si può semplicemente utilizzare React.createElement(data.type, data.props, data.children); creare un componente compresi tutti i bambini, le proprietà eccetera.

+0

La domanda chiede in particolare se sia possibile creare manualmente un oggetto elemento reattivo ** senza ** utilizzando react.createElement –

+0

Come @zackify ha già detto sopra, penso che questo non possa essere ottenuto in modo semplice. Perché proprio non puoi usare 'createElement' nel tuo caso? – rofrischmann

+0

L'idea era di creare elementi di reazione annidati durante lo streaming da html. –

Problemi correlati