2016-05-04 5 views
0

JSONオブジェクトを使ってマッピングすることでReactのコンポーネントをレンダリングしています。私は今これらのコンポーネントをDOMに追加したいと思う。これらのコンポーネントをそれぞれ選択してDOMに追加するにはどうすればよいですか?React: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

まず、あなたのレンダリング方法を調整する必要があります。

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

こんにちはヨルダン、 感謝:あなたはまだのような子として{objects}として持って、dataObjectの上にマッピングし、私はobjectsそれを呼んで、この場合には、それを変数に設定し、jsxにそれを使用する必要がありますあなたのお手伝いをします。 私がしたいことは次のようなものです '' ' var x = ReactDOM.findDOMNode(this.props.start_time) console.log(this.props.start_time); $( '#nine')。append(x) '' ' 各イベントをdiv/gridカレンダーシステムに一致させるためです。たとえば、イベントが午前9時に開始された場合、私はID 9時にはdivに入ることを望みます。 – CodeYogi