在React / JavaScript中操作日期moment.js

时间:2018-11-16 14:01:16

标签: javascript arrays reactjs datepicker momentjs

根据第一个自动填充其他日期字段。

1。。我有12个索引“ listOfPaysIndexes”的数组,我正在使用此数组来遍历她并呈现12个DateInput字段。

2。。您可以单击每个字段并选择“日期”。

3。。当您在第一个DateInput中选择日期时,所有其他DateInputs应该在下个月自动填写。

当前行为是:当您选择firstDate时,在所有其他字段上都将获得相同的日期。

预期的行为是::当您选择firstDate时,每个下一个提交的日期都会自动下一个下架日期。

  • 问题是我选择2018年11月6日 我将在11月6日进入第一个字段,而在所有其他字段中会在2018年12月6日到达。

  • 但是应该继续切换到下一个Mounths,并显示下个月的日期。

  • 我认为这行代码有问题:返回firstDate.add(1,'months')。format('MM / DD / YYYY')

代码示例:

fillingDatesArray = (data, values, periodType, periodLength) => {
  let listOfPaysIndexes = []
  listOfPaysIndexes = This array have 12 indexes

if (periodType === 'monthly') {
  values.ending_period_monthly = listOfPaysIndexes.map(value => {
    let firstDate = new Date(data.value)
    return firstDate.add(1, 'months').format('MM/DD/YYYY')
  })
}

这是该DateInputs的屏幕截图: enter image description here

1 个答案:

答案 0 :(得分:1)

尝试在map中克隆您的时刻日期,以使每个值对相同的moment object的引用都不相同:

let firstDate = moment(data.value)
...
return firstDate.clone().add(1, 'months').format('MM/DD/YYYY')

代替:

return firstDate.add(1, 'months').format('MM/DD/YYYY')