2017-03-23 11 views
-1
const cal_days =['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat']; 
const cal_months =['Jan', 'Feb', 'March', 'April', 
'May', 'June', 'July', 'August', 'Sept', 'Oct', 'Nov', 'Dec']; 
const daysInMonth =[31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]; 
const curr =new Date(); 
var d = new Date(); 
var n = d.getMonth(); 
var yearName = d.getFullYear(); 
var monName = cal_months[n]; 
var firstDay = new Date(yearName,n, 1); 
var startD = firstDay.getDay(); 
var num= daysinmonth[n]; 
var day=1; 

var Show = React.createClass({ 
numrow:function(){ 
//var day = 1; 
for (var i = 1; i <=6; i++) { 
for (var j = 0; j <= 6; j++) { 
    if (day <= num && (i > 0 || j >= startD)) { 
    return (<td>{i}</td>); 
    day++; 
    } 
    if (day > n) { 
     break; 
     } else 
     { 
     return (<tr></tr>); 
     } 
    } 
    } 
     }, 

    render:function(){ 
    var daysname= cal_days.map(function(day){ 
    for(var i = 0; i <= 6; i++){ 
    return <td>{day}</td>;} 
    }) 
    return (
    <div> 
    <table> 
    <tbody> 
    <tr> 
     {daysname} 
     </tr> 
     <tr> 
     {this.numrow()} 
     </tr> 
    </tbody> 
    </table> 
    </div> 
    ) 
    } 
    }) 

This is the output of the programは、私がreactjsでカレンダーを作るための方法の午前reactjs

でカレンダーを作成します。私はReactjsの初心者です。私は123日目を表示したいです。なぜ、num​​row関数は1だけを出力するのですか? 私は出力を添付しています(これは完全なプログラムではなく、そのprtです)

答えて

0

numrowの配列を作成し、終わりに全体の配列。それは

numrow:function(){ 
    //var day = 1; 
    var rows = []; 
    for (var i = 1; i <=6; i++) { 
     for (var j = 0; j <= 6; j++) { 
      if (day <= num && (i > 0 || j >= startD)) { 
       rows.push(<td>{i}</td>) 
       day++; 
      } 
      if (day > n) { 
       break; 
      } else 
      { 
      rows.push(<tr></tr>) 
      } 
     } 
    } 
    return rows; 
    }, 

私の提案は、あなたの変数を適切stackoverflowの名前にあなたのコードを投稿するとき(i、jはない)ので、あなたのコードが読みやすくすることができている動作するはずです。

関連する問題