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