Reactjs 反应无限日历--保存多个日期
在我的react组件I中,允许用户选择多个日期 我想在用户单击日历下面的按钮后记录所有这些日期。但是,每次我尝试记录这些日期时,它都会返回一个空数组 我有,但仍然不起作用。任何建议都很好。下面是我的代码Reactjs 反应无限日历--保存多个日期,reactjs,calendar,Reactjs,Calendar,在我的react组件I中,允许用户选择多个日期 我想在用户单击日历下面的按钮后记录所有这些日期。但是,每次我尝试记录这些日期时,它都会返回一个空数组 我有,但仍然不起作用。任何建议都很好。下面是我的代码 import RaisedButton from 'material-ui/RaisedButton'; import InfiniteCalendar, { Calendar, defaultMultipleDateInterpolation, withMultipleDates } from
import RaisedButton from 'material-ui/RaisedButton';
import InfiniteCalendar, { Calendar, defaultMultipleDateInterpolation, withMultipleDates } from 'react-infinite-calendar';
import '../../../node_modules/react-infinite-calendar/styles.css';
const MultipleDatesCalendar = withMultipleDates(Calendar);
class Planner extends React.Component {
constructor(props) {
super(props);
this.state = {
selectedDates: []
};
}
displayDates() {
console.log("SELECTED DATES");
console.log(this.selectedDates);
}
render() {
return (
<InfiniteCalendar
Component={MultipleDatesCalendar}
height={250}
interpolateSelection={defaultMultipleDateInterpolation}
selected={this.state.selectedDates}
layout={'portrait'}
width={'100%'}
onSelect={(selectedDate) => defaultMultipleDateInterpolation(selectedDate,
this.state.selectedDates)}
/>
<RaisedButton
className=""
target="_blank"
label="Available"
primary={true}
onClick={() => this.displayDates(this.state.selectedDates)}
/>
);
}
export default Planner
这对我有用
onSelect = { (selectedDate) =>{
let aux = defaultMultipleDateInterpolation(selectedDate,this.state.dates)
this.setState({
dates:aux
})
return aux;
}
}
这对我有用
onSelect = { (selectedDate) =>{
let aux = defaultMultipleDateInterpolation(selectedDate,this.state.dates)
this.setState({
dates:aux
})
return aux;
}
}
将日期数组添加到您的状态
state = {
dates: []
};
然后将数组移除函数添加到类中
function arrayRemove(arr, value) {
return arr.filter(function (ele) {
return ele != value;
});
}
然后将onSelect函数添加到InfiniteClendar
<InfiniteCalendar
Component={MultipleDatesCalendar}
interpolateSelection={defaultMultipleDateInterpolation}
selected={this.state.dates}
onSelect={(date) => {
var converted = date.toLocaleString('default', { weekday: 'short' })
+ ' ' + date.toLocaleString('default', { month: 'short' })
+ ' ' + date.getDate() + ' ' +date.getFullYear() + ' 00:00:00';
if (!this.state.dates.includes(converted)) {
this.setState({
dates: [...this.state.dates, converted]
})
return converted;
} else {
var result = arrayRemove(this.state.dates, converted);
this.setState({
dates: result
})
}
}
} />
将日期数组添加到您的状态
state = {
dates: []
};
然后将数组移除函数添加到类中
function arrayRemove(arr, value) {
return arr.filter(function (ele) {
return ele != value;
});
}
然后将onSelect函数添加到InfiniteClendar
<InfiniteCalendar
Component={MultipleDatesCalendar}
interpolateSelection={defaultMultipleDateInterpolation}
selected={this.state.dates}
onSelect={(date) => {
var converted = date.toLocaleString('default', { weekday: 'short' })
+ ' ' + date.toLocaleString('default', { month: 'short' })
+ ' ' + date.getDate() + ' ' +date.getFullYear() + ' 00:00:00';
if (!this.state.dates.includes(converted)) {
this.setState({
dates: [...this.state.dates, converted]
})
return converted;
} else {
var result = arrayRemove(this.state.dates, converted);
this.setState({
dates: result
})
}
}
} />