首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >从自定义v- date -picker Vuetify获取所选日期

从自定义v- date -picker Vuetify获取所选日期
EN

Stack Overflow用户
提问于 2020-05-02 09:53:41
回答 1查看 2K关注 0票数 1

我在我当前的项目中使用Vue的Vuetify框架,并且我已经创建了一个基于v-date-picker的自定义组件,我计划在多个地方使用它。下面是代码;

子组件(自定义v-date-选择器)

代码语言:javascript
运行
AI代码解释
复制
<template>
<v-dialog
        ref="dialog"
        v-model="modal"
        :return-value.sync="date"
        persistent
        width="290px"
      >
        <template v-slot:activator="{ on }">
          <v-text-field
            v-model="date"
            :label=title
            prepend-icon="event"
            readonly
            v-on="on"
          ></v-text-field>
        </template>
        <v-date-picker v-model="date" scrollable>
          <v-spacer></v-spacer>
          <v-btn text color="primary" @click="modal = false">Cancel</v-btn>
          <v-btn text color="primary" @click="$refs.dialog.save(date)">OK</v-btn>
        </v-date-picker>
      </v-dialog>
</template>
<script>
export default {
    props:[
        'title','date'
    ],
    data () {
      return {
        modal:false,
      }
    },   


}
</script>

父组件(这是一个对话框)

代码语言:javascript
运行
AI代码解释
复制
<template>
    <v-dialog
      width="800px"
      v-model="dialog"
    >
      <v-card>
        <!-- <v-card-title class="grey darken-2">
          Create contact
        </v-card-title> -->
        <v-container>
          <v-row class="mx-2">

            <v-col cols="3">
              <date-picker-component :date="beginDate" title="Begin Date"></date-picker-component>
            </v-col>
            <v-col cols="3">
              <date-picker-component :date="endDate" title="End Date"></date-picker-component>
            </v-col>
          </v-row>
        </v-container>
        <v-card-actions>
          <v-spacer />
          <v-btn
            text
            color="primary"
            @click="dialog = false"
          >Cancel</v-btn>
          <v-btn
            text
            @click="createEvent"
          >Create Event</v-btn>
        </v-card-actions>
      </v-card>
      <v-overlay :value="overlay">
      <v-progress-circular indeterminate size="64"></v-progress-circular>
    </v-overlay>
    <v-dialog
      v-model="resultDialog"
      max-width="290"
    >
      <v-card>
        <v-card-title class="headline"><v-icon class="pr-2" color="green" st>mdi-check-circle</v-icon> Event Manager</v-card-title>
        <v-card-text>
          {{resultDialogMessage}}
        </v-card-text>
        <v-card-actions>
          <v-spacer></v-spacer>
          <v-btn
            color="green darken-1"
            text
            @click="resultDialog = false"
          >
            OK
          </v-btn>
        </v-card-actions>
      </v-card>
    </v-dialog>
    </v-dialog>

</template>
<script>
  import Vue from 'vue';
  import DatePicker from "../../widgets/DatePicker";

  export default {
    name: 'CreateEvent',
     props:['dialog'],
    components:{
      'date-picker-component':DatePicker,
    },
    data () {
      return {
        resultDialog:false,
        resultDialogMessage:"",
        overlay:false,
        beginDate:new Date().toISOString().substr(0, 10),
        endDate:new Date().toISOString().substr(0, 10),
      }
    },
  };
</script>

v- date -picker运行良好,但我立即选择了一个日期,在控制台中得到以下错误;

代码语言:javascript
运行
AI代码解释
复制
[Vue warn]: Avoid mutating a prop directly since the value will be overwritten whenever the parent component re-renders. Instead, use a data or computed property based on the prop's value. Prop being mutated: "date

因此,我无法从子组件中获取所选的日期,而该日期只是恢复为初始日期。

是不是我遗漏了什么,我做错了什么?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-05-02 13:46:31

在向子组件传递vue数据时,应将组件作为道具传递给父组件,并应通过发回来传递该组件。如果您使用相同的变量来传递和传回值,vue会警告您。您需要更改您的日期选择器组件,如下所示,这样prop就不会直接被孩子更改。而是使用本地数据。

代码语言:javascript
运行
AI代码解释
复制
<template>
<v-dialog
  ref="dialog"
  v-model="modal"
  :return-value.sync="localDate" //Changed here
  persistent
  width="290px"
  >
  <template v-slot:activator="{ on }">
    <v-text-field
      v-model="localDate"  //Changed here
      :label=title
      prepend-icon="event"
      readonly
      v-on="on"
      ></v-text-field>
  </template>
  <v-date-picker v-model="localDate" scrollable>  //Changed here
    <v-spacer></v-spacer>
    <v-btn text color="primary" @click="modal = false">Cancel</v-btn>
    <v-btn text color="primary" @click="$refs.dialog.save(localDate)">OK</v-btn> //Changed here
   </v-date-picker>
</v-dialog>
</template>
<script>
export default {
    props:[
        'title','date'
    ],
    data () {
      return {
        modal:false,,
        localDate: this.date
      }
    },
    watch: {
      localDate(){ 
        this.$emit('update', this.localDate)
      }
    }   
}
</script>

现在,在您的父组件中,您可以按如下方式使用

代码语言:javascript
运行
AI代码解释
复制
<date-picker-component 
  :date="endDate" 
  @update="(v) => (endDate = v)" 
  title="End Date">
</date-picker-component>
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61557429

复制
相关文章
el-date-picker
然后这里我们就只能选择当天之后的日期,以及选择时间如果小于当前时间,则会强制改为当前时间,可以根据具体情况自行调整
阿超
2022/08/16
1K0
el-date-picker
建议收藏!整理了五款Vue日历开源组件~
Vue Heatmap是一个基于Vue.js的Github样式的日历热图,可使用d3.js 库动态呈现类似Github贡献图的日历热图 。
程序员老鱼
2023/09/07
22.8K1
建议收藏!整理了五款Vue日历开源组件~
php date与gmdate的获取日期的区别
PHP中的时间有2个格式化函数:date()和gmdate(),在官方的文档中的描述为date -- 格式化一个本地时间/日期
习惯说一说
2019/06/30
2.1K0
获取checkbox所选中的值
<input name="demand" type="checkbox" value="222" /> //获取所有name为demand的对象 var obj = document.getElementsByName('demand'); var demand = ''; for (var i = 0; i < obj.length; i++) { if (obj[i].checked) { demand += obj[i].value + ',';//如果选中,将value添加
小语雀网
2022/05/06
3.5K0
原来这就是我一直想要的日期控件:My97 Date Picker
昨天发现的,接着就用上了,我个人觉得比Jquery的那些好多了,以前[URL=http://www.43job.com]43job[/URL]和[URL=http://www.ERPjob.Net]ERPjob[/URL]的项目中用到过Jquery的日期选择控件,有时候浏览器不兼容,还是国产的精品好用呀。
崔文远TroyCui
2019/02/27
7140
原来这就是我一直想要的日期控件:My97 Date Picker
JS前端Date(日期)
Date日期对象是一个构造函数,主要用来获取时间和对时间进行一系列操作。Date 类型将日期保存为自协调世界时(UTC,Universal Time Coordinated)时间 1970 年 1 月 1 日午夜(零时)至今所经过的毫秒数。
IT工作者
2022/05/13
10.3K0
JavaScript Date(日期) 对象
我们提供 JavaScript Date 对象参考手册,其中包括所有可用于日期对象的属性和方法。JavaScript Date 对象参考手册。
陈不成i
2021/07/20
1.3K0
自学鸿蒙应用开发(8)- DatePicker组件
如下面代码中21行和50行所示,在获取DatePicker组件后,一方面在button的动作响应中计算所选日期和当前日期的差值之后用小窗口表示出来;另一方面在用户操作DatePicker时将选择结果表示在TextFile组件上。
面向对象思考
2021/01/04
9040
自学鸿蒙应用开发(8)- DatePicker组件
Date() 日期格式的处理
实体对象 /** * 开始时间 */ @TableField("start_time") @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") private Date startTime; 页面 (参考 用插件的) /* 开始时间 */ laydate({ elem: '#startTime', event: 'focus', format:
用户5927264
2019/08/01
2.7K0
date函数和日期有关
tring date($format[,$timestamp]),[]内的可以使用strtotime输出指定日期
十月梦想
2018/08/29
1.2K0
js获取所选文件路径
本来今天想用vue做一个button,点击后选择本地文件,并获取文件路径,但只在html下实现了,vue下还要研究下。
efonfighting
2019/10/16
14.6K0
el-date-picker 宽度溢出浏览器问题
唐志远
2023/07/26
4760
el-date-picker 宽度溢出浏览器问题
el-date-picker 宽度溢出浏览器问题
唐志远
2023/08/01
5820
el-date-picker 宽度溢出浏览器问题
python的日期模块time,date
转义符对应意义如下 %a 本地简化星期名称 %A 本地完整星期名称 %b 本地简化的月份名称 %B 本地完整的月份名称 %c 本地相应的日期表示和时间表示 %d 月内中的一天(0-31) %H 24小时制小时数(0-23) %I 12小时制小时数(01-12) %j 年内的一天(001-366) %m 月份(01-12) %M 分钟数(00=59) %p 本地A.M.或P.M.的等价符 %S 秒(00-59) %U 一年中的星期数(00-53)星期天为星期的开始 %w 星期(0-6),星期天为星期的开始 %W 一年中的星期数(00-53)星期一为星期的开始 %x 本地相应的日期表示 %X 本地相应的时间表示 %y 两位数的年份表示(00-99) %Y 四位数的年份表示(000-9999) %Z 当前时区的名称 %% %号本身
py3study
2020/01/09
7860
javascript中如何正确将日期(Date)字符串转换为日期(Date)对象?
因近日一个项目中要在客户端判断用户输入的日期字符串的大小,所以对日期字符串转日期对象研究了一下,测试代码如下: <script. type="text/javascript"> var sDate1 = "2008/04/02"; var sDate2 = "2005/03/01"; var oDate1 = new Date(sDate1); var oDate2 = new Date(sDate2); if (oDate1 > oDate2)//输出 2008/04/
菩提树下的杨过
2018/01/22
5.8K0
苹果ios用js的Date() 获取到的日期时间 显示NaN
ios使用如下方法获得NaN,安卓手机则是正常计算,解决方法是换个这个时间的格式 new Date("2020-07-17 23:59:59").getTime() 换成如下方式就正常了,就是‘-’换成‘/’ new Date("2020/07/17 23:59:59").getTime() 正则表达式替换方法 "2020-07-17 23:59:59".replace(/\-/g, '/')
李维亮
2021/07/08
5.5K0
Flutter中使用flutter_cupertino_date_picker选择时间
参考:https://github.com/dylanwuzh/flutter-cupertino-date-picker
越陌度阡
2022/05/06
1.5K0
Flutter中使用flutter_cupertino_date_picker选择时间
date命令 – 显示日期与时间
date命令可以用来显示或设定系统的日期与时间,在显示方面,使用者可以设定欲显示的格式,格式设定为一个加号后接数个标记 。
契合
2021/08/10
2.7K0
oracle 转number日期,oracle number型日期转date型日期
在搞数据库时,发现有这样的一个字段,类型是NUMBER(38),查看了一下里面的数据,都是这样的,
全栈程序员站长
2022/09/15
8K0
JS生成Van-Picker 指定日期格式~
项目中需要根据后台配置生成指定的Picker日期格式,按照自然月或者按照指定日期生成月区间。
执行上下文
2023/07/24
3110
JS生成Van-Picker 指定日期格式~

相似问题

Vuetify Date Picker -如何设置对话框使用的初始日期

120

Vuetify -date-picker格式不稳定-我如何修复?

126

React Date-Picker不接受日期

111

如何从date time Picker中提取日期和时间?

20

如何从angular material Date picker获取当前时间?

358
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
社区富文本编辑器全新改版!诚邀体验~
全新交互,全新视觉,新增快捷键、悬浮工具栏、高亮块等功能并同时优化现有功能,全面提升创作效率和体验
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文