2016-05-04 47 views
0

我通過映射通過JSON對象來呈現React中的組件。我現在想要將這些組件添加到dom中。我如何選擇每個這些組件並將它們附加到DOM?反應:將組件追加到DOM

所有常用的jQuery方法都不起作用。

{dataobj.items.map((instance) => { 

     return (
      <div key={instance.title} className="new"> 
      <Event time={parseInt(instance.start_time)} title={instance.title} start_time={instance.start_time} location={instance.location} /> 
      </div> 
     ) 


})} 

import AltContainer from 'alt-container'; 
import React from 'react'; 
import { Link } from 'react-router'; 
import moment from 'moment'; 
import Event from './Event.jsx'; 
const classNames = require('classnames'); 
const ReactDOM = require('react-dom') 


export default class Calendar extends React.Component { 

    constructor(props) { 
    super(props); 



    this.state = { 

    } 
} 

    componentDidMount() { 
    ReactDOM.findDOMNode(this) 
    console.log(this); 
    $('#nine').append($('new')) 
    } 

    render() { 

    var timeStamp = function() { 
    var datafile = require("json!./data.json"); 

    {datafile.items.map(function(instance) { 
     const timeElement= parseInt(instance.start_time); 
     console.log(timeElement); 
     return timeElement 
    })} 
} 
    var dataobj = require("json!./data.json"); 


    return (
     <div className="calendar"> 
     <div className="amContainer"> 
     <div className="amSide">AM</div> 
     <div className="linesContainer"> 
      <div className="hourBlock"> 
       <div id="nine" className="time"> 
       </div> 
       <div className="halfHour"> 
       {moment().format('9:30')} 
       </div> 
      </div> 
      <div className="hourBlock"> 
      <div className="time"> 
      {moment().format('10:00')} 
      </div> 
      <div className="halfHour"> 
       {moment().format('10:30')} 
      </div> 
      </div> 
      <div className="hourBlock"> 
      <div className="time"> 
      {moment().format('11:00')} 
      </div> 
      <div className="halfHour"> 
       {moment().format('11:30')} 
      </div> 
      </div> 
     </div> 
     </div> 

      {dataobj.items.map((instance) => { 


     return (
      <div key={instance.title} className="new"> 
      <Event time={parseInt(instance.start_time)} title={instance.title} start_time={instance.start_time} location={instance.location} /> 
      </div> 
     ) 



})} 


     </div> 
    ); 
    } 
} 

回答

1

首先,您需要調整您的渲染方法。您需要映射在dataObject,將其設置爲可變的,在這種情況下,我把它叫做objects,然後使用在jsx你已經爲{objects}像這樣子:

render() { 
// your render logic 
var objects = dataobj.items.map((instance) => { 
     return (
      <div key={instance.title} className="new"> 
      <Event 
      time={parseInt(instance.start_time)} 
      title={instance.title} 
      start_time={instance.start_time} 
      location={instance.location} 
      /> 
      </div> 
     ) 

    return (
    <ExampleComponent> 
    // your main html should go here this is just a simple example 
     {objects} 
    <ExampleComponent/> 
    ) 
} 
+0

嗨約旦, 謝謝你的幫助。 我想要做的就是這樣的事情 ''' var x = ReactDOM.findDOMNode(this.props.start_time) console.log(this.props.start_time); $('#9')。append(x) ''' 這樣我就可以將每個事件匹配到div/grid日曆系統。例如,如果活動在上午9點開始,我希望它在上午9點以id身份進入分區。 – CodeYogi