2017-03-27 17 views
0
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; 

class Show extends Component{ 
numrow(){ 
    var array=[]; 
    for (var i = 1; i <=num; i++) { 
    for (var j = 0; j <= 6; j++) { 
    if (day <= num && (i > 0 || j >= startD)) { 
     array.push(i); 
     day++; 
     } 
     if (day > n) 
     break; 
     } 
     } 
array.map(function(){ 
for (var i = 1; i <=6; i++) { 
    // console.log(<td>{array[i]}</td>); 
    return <td>{array[i]}</td>; 
} 
}) 
} 
render(){ 
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> 
) 
    } 
    }; 

表示日間、Reactjsでカレンダーを作成します。 Reactjsでこのカレンダーを作っています。私は1,2,3日を表示したい。関数numrowに何も表示されないのはなぜですか?私はここに全体のコードを掲載していません。ちょうどその一部です。 array.map()関数を正しく使用しましたか?は、私がReactjsを勉強し始めている

答えて

0

map apiとこの機能の使用方法をお読みください。

array.map(function(val){ 
    return <td>{val}</td>; 
}) 
cal_days.map(function(day){ 
    return <td>{day}</td>; 
}) 

for loopあなたは、機能NUMROWから何も返さなかったので、不要な

0

何も印刷されていないです:
あなたarray.mapは次のようなものでなければなりません。私は、あなたが望むものを印刷するためにあなたのロジックにいくつか修正を加えました。

class Show extends Component { 
numrow() { 
    var array = []; 
    do{ 
     var arrayRow = []; 
     for (var j = 0; j <= 6; j++) { 
      if (day <= num && (j >= startD || day >= startD)) { 
       arrayRow.push(day); 
       day++; 
      } else { 
       arrayRow.push(""); 
      } 
     } 
     array.push(arrayRow); 
    }while(day < num) 

    return array.map(function (arrayRow) { 
     return (
      <tr> 
       {arrayRow.map(function(item){ 
        return <td> {item} < /td>   
       })} 
      </tr> 
     ) 

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

これは、日が6になるまでのスペースを印刷します。土曜日には1が来るので、2,3,4,5もそうです。そして、彼らは月曜日から印刷を始めます(6から)。 –

+0

@ sugandhあなたは関数numrowが何も印刷しない理由を尋ねました。なぜなら、関数から何も返さないので、デフォルトでは未定義が返されます。あなたのロジックを印刷したいもの –

関連する問題