Vue.js [Vue warn]的原因是什么:无效的道具:针对道具的自定义验证器检查失败;“价值”;

Vue.js [Vue warn]的原因是什么:无效的道具:针对道具的自定义验证器检查失败;“价值”;,vue.js,nuxt.js,vuejs-datepicker,Vue.js,Nuxt.js,Vuejs Datepicker,我有一个nuxt.js应用程序,它使用: 但是有什么不同呢?它可能是Vue.js bug本身吗?date2和date3是对象,而value需要null | Date | string | number const date2 = moment('2016-09-16').toDate() const date3 = DateTime.local(2016, 9, 16).toJSDate() typeof date2 // object typeof date3 // object 您应该

我有一个nuxt.js应用程序,它使用:


但是有什么不同呢?它可能是Vue.js bug本身吗?

date2
date3
是对象,而value需要null | Date | string | number

const date2 = moment('2016-09-16').toDate()
const date3 = DateTime.local(2016, 9, 16).toJSDate()

typeof date2 // object
typeof date3 // object
您应该使用
.toString()
将它们转换为字符串

const date2 = moment('2016-09-16').toString()
const date2 = moment('2016-09-16').toISOString()
const date3 = DateTime.local(2016, 9, 16).toString()
或者使用unix时间戳

const date2 = moment('2016-09-16').unix()
const date3 = moment('2016-09-16').valueOf()
const date4 = moment('2016-09-16').getTime()
const date5 = DateTime.local(2016, 9, 16).valueOf()

这很奇怪。。。所有这些都是对象,包括日期本身,您可以在我的代码沙盒片段中看到它。此外,您可以看到date、date2和date3都是date的实例。但是在浏览器控制台中。在服务器端控制台中,后两个不是日期实例!有趣。我看到
typeof
instanceof
非常不同。可能您应该将其转换为字符串或unix时间戳,以使其在服务器和客户端上都能工作。
value: {
      validator: function (val) { return utils$1.validateDateInput(val); }
    }
validateDateInput (val) {
    return val === null || val instanceof Date || typeof val === 'string' || typeof val === 'number'
  }
const date2 = moment('2016-09-16').toDate()
const date3 = DateTime.local(2016, 9, 16).toJSDate()

typeof date2 // object
typeof date3 // object
const date2 = moment('2016-09-16').toString()
const date2 = moment('2016-09-16').toISOString()
const date3 = DateTime.local(2016, 9, 16).toString()
const date2 = moment('2016-09-16').unix()
const date3 = moment('2016-09-16').valueOf()
const date4 = moment('2016-09-16').getTime()
const date5 = DateTime.local(2016, 9, 16).valueOf()