【发布时间】:2021-05-11 15:29:47
【问题描述】:
我有这个组件:
const WeekDays = ({dateInformation, daysInMonth}) => {
const [weekday, setWeekDays] = useState([
{name: 'Su', days: []},
{name: 'Mo', days: []},
{name: 'Tu', days: []},
{name: 'We', days: []},
{name: 'Th', days: []},
{name: 'Fr', days: []},
{name: 'Sa', days: []},
]);
const organizeDays = () => {
const calcDays = daysInMonth(dateInformation.month, dateInformation.year);
const reversedWeekdays = [...weekday].reverse();
const finalResult = reversedWeekdays.map((el, index) => {
calcDays.map((day) => {
return day.weekDay === index && {...el, days: [...el.days, day]};
});
});
setWeekDays(finalResult.reverse());
};
useEffect(() => {
organizeDays();
}, [dateInformation.month, dateInformation.year]);
return (
<View style={{flexDirection: 'row', marginTop: '3%'}}>
{weekday.map((day) => {
return (
<View>
<Text style={styles.weekDayText} key={day.name}>
{day.name}
</Text>
<TouchableOpacity>
{/* {day.days.map((el) => (
<Text key={el}>wewe</Text>
))} */}
</TouchableOpacity>
</View>
);
})}
</View>
);
};
daysInMonth 计算月份中的工作日,例如它返回如下数组:
[{"dayNum": 1, "weekDay": 6}, {"dayNum": 2, "weekDay": 0}, {"dayNum": 3, "weekDay": 1}, {"dayNum": 4, "weekDay": 2}, {"dayNum": 5, "weekDay": 3}, {"dayNum": 6, "weekDay": 4}, {"dayNum": 7, "weekDay": 5}, {"dayNum": 8, "weekDay": 6}, {"dayNum": 9, "weekDay": 0}, {"dayNum": 10, "weekDay": 1}, {"dayNum": 11, "weekDay": 2}, {"dayNum": 12, "weekDay": 3}, {"dayNum": 13, "weekDay": 4}, {"dayNum": 14, "weekDay": 5}, {"dayNum": 15, "weekDay": 6}, {"dayNum": 16, "weekDay": 0}, {"dayNum": 17, "weekDay": 1}, {"dayNum": 18, "weekDay": 2}, {"dayNum": 19, "weekDay": 3}, {"dayNum": 20, "weekDay": 4}, {"dayNum": 21, "weekDay": 5}, {"dayNum": 22, "weekDay": 6}, {"dayNum": 23, "weekDay": 0}, {"dayNum": 24, "weekDay": 1}, {"dayNum": 25, "weekDay": 2}, {"dayNum": 26, "weekDay": 3}, {"dayNum": 27, "weekDay": 4}, {"dayNum": 28, "weekDay": 5}, {"dayNum": 29, "weekDay": 6}, {"dayNum": 30, "weekDay": 0}, {"dayNum": 31, "weekDay": 1}]
我想要达到的目标:
我想在days:[] 值上对工作日对象内的daysInMonth 返回的信息进行排序,但不幸的是,我的organizeDays 输出的返回是一个充满未定义值的数组
[undefined,undefined,undefined,.....]
请问有什么解决这个问题的建议吗?
【问题讨论】:
标签: javascript reactjs