Javascript 从for loop to onClick()内的div列表中获取变量

Javascript 从for loop to onClick()内的div列表中获取变量,javascript,reactjs,ecmascript-6,Javascript,Reactjs,Ecmascript 6,我正在尝试制作一个日历,只需选择一天(即a)来更改其css类,使用基于reactjs类的组件将daySelected作为状态属性 在createCalendar()中,我使用一个指示符(日期)获取天数,并在for循环中递增它,使用onClick()将日期传递给handleClick(日期) 当我选择任何一天时,我总是得到所选的最后一天 我想将变量日期从所选日期传递到handelClick(日期),请建议任何解决方案 ps:我需要在单个组件中制作所有东西来控制状态 handleClick = d

我正在尝试制作一个日历,只需选择一天(即a)来更改其css类,使用基于reactjs类的组件将daySelected作为状态属性

在createCalendar()中,我使用一个指示符(日期)获取天数,并在for循环中递增它,使用onClick()将日期传递给handleClick(日期)

当我选择任何一天时,我总是得到所选的最后一天

我想将变量日期从所选日期传递到handelClick(日期),请建议任何解决方案

ps:我需要在单个组件中制作所有东西来控制状态

 handleClick = day => {
    this.setState(state => ({
      checked: !state.checked,
      daySelected: day
    }));
  };

createCalendar(currentMonth, currentYear) {
        let firstDay = new Date(currentYear, currentMonth).getDay();
        let daysInMonth =
          32 - new Date(currentYear, currentMonth, 32).getDate() - 1;
        var days = [];
        let date = 0;

        for (let i = 0; i < 5; i++) {
          for (let j = 0; j < 7; j++) {
            if (i === 0 && j < firstDay) {
              var x = (
                <div className={"Day"}>
                  <p> </p>
                </div>
              );
            } else if (date > daysInMonth) {
              break;
            } else {
              date++;



              var x = (

                 // I want to get the variable date from here  

                <div
                  value={date}
                  onClick={() => this.handleClick(date)}
                  className={this.state.daySelected == date ? "Day-checked" : "Day"}
                >
                  <p>{date}</p>
                </div>
              );
            }

            days.push(x);
          }
        }
        return days;
      }
handleClick=day=>{
this.setState(state=>({
选中:!state.checked,
所选日期:天
}));
};
创建日历(当前月、当前年){
设firstDay=新日期(currentYear,currentMonth).getDay();
让我们每个月都有一天=
32-新日期(当前年、当前月、32)。getDate()-1;
风险值天数=[];
设日期=0;
for(设i=0;i<5;i++){
对于(设j=0;j<7;j++){
如果(i==0&&j
);
}否则如果(日期>天/月){
打破
}否则{
日期++;
变量x=(
//我想从这里得到变量日期
this.handleClick(日期)}
className={this.state.daySelected==date?“选中的日期”:“Day”}
>
{date}

); } 推(x); } } 返程天数; }
如果要覆盖循环中的
x
值(使用一个引用),则应使用函数

只需将子组件定义转换为函数,类似于
constx=(date)=>{…
并在循环中使用它