element ui时间日期选择器el-date-picker报错Prop being mutated:”placement”解决方式

问题描述:

在使用Element UI中的el-date-picker组件时,会出现如下错误:

"Prop being mutated, vue will not trigger updates on this case"

同时在控制台中会出现如下警告:

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: "placement"

问题分析:

这个错误提示是因为el-date-picker组件中的属性被直接修改,而vue组件不允许直接修改props中传递的属性值,而应该通过临时变量来存储修改后的值,在合适的时机将其传递给父组件。

解决方法:

  1. 使用计算属性代替直接修改props属性

使用计算属性代替直接修改props属性是解决问题的最简单方法。VueJS提供了计算属性来处理这种情况,我们可以通过计算属性定义一个新的属性,并在计算属性的get和set方法中对新属性进行操作。

例如,在使用el-date-picker组件时,我们需要修改默认的展示位置,可以通过计算属性进行修改:

<template>
  <el-date-picker v-model="date" :picker-options="pickerOptions" :placement="placement"></el-date-picker>
</template>

<script>
export default {
  data() {
    return {
      date: '',
      pickerOptions: {
        shortcuts: [{
          text: '今天',
          onClick(picker) {
            picker.$emit('pick', new Date());
          }
        }, {
          text: '昨天',
          onClick(picker) {
            const date = new Date();
            date.setTime(date.getTime() - 3600 * 1000 * 24);
            picker.$emit('pick', date);
          }
        }, {
          text: '一周前',
          onClick(picker) {
            const date = new Date();
            date.setTime(date.getTime() - 3600 * 1000 * 24 * 7);
            picker.$emit('pick', date);
          }
        }]
      }
    };
  },
  computed: {
    placement() {
      // 修改默认位置为bottom-start
      return 'bottom-start'
    }
  }
}
</script>
  1. 使用prop传递复杂对象

以上方法也适用于通过prop传递的复杂对象。在这种情况下,我们需要确保不会改变对象的原始数据和属性,而是通过分配到一个新变量,对分配后的对象进行修改。

例如,在使用v-tooltip组件时,可以将绑定的数据存储在一个包含显示位置的对象中:

<template>
  <div>
    <button v-tooltip="tooltipData">Hover Me</button>
  </div>
</template>

<script>
export default {
  data() {
    return {
      tooltipData: {
        content: 'Welcome to my tooltip!',
        placement: 'right'
      }
    };
  }
}
</script>

以上就是ElmentUI时间日期选择器el-date-picker报错Prop being mutated:"placement"的解决方式的完整攻略,通过使用计算属性或者传递复杂对象,我们可以避免直接修改props中传递的属性值,以保障代码的正确性和可维护性。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:element ui时间日期选择器el-date-picker报错Prop being mutated:”placement”解决方式 - Python技术站

(0)
上一篇 2023年5月29日
下一篇 2023年5月29日

相关文章

  • 详解vue.js移动端配置flexible.js及注意事项

    详解vue.js移动端配置flexible.js及注意事项 介绍 随着移动端市场的扩大,越来越多的网站和应用开始关注移动端的适配问题。Vue.js作为一种前端开发的流行框架,也需要考虑移动端适配问题。本文将介绍如何在Vue.js中配置flexible.js实现移动端适配,以及在使用过程中需要注意的细节。 flexible.js介绍 flexible.js是淘…

    Vue 2023年5月28日
    00
  • javascript和jQuery实现网页实时聊天的ajax长轮询

    一、什么是ajax长轮询 Ajax长轮询是指在客户端通过ajax向服务端发起请求,服务端接到请求后,如果有未处理的数据,则返回数据。如果没有未处理的数据,则一直等待,直到有未处理的数据。客户端接收到服务端返回的数据后,再向服务端发送新的请求。这个过程就是长轮询的实现。 二、实现网页实时聊天的ajax长轮询 实现网页实时聊天的ajax长轮询,可以使用JavaS…

    Vue 2023年5月27日
    00
  • vue中添加与删除关键字搜索功能

    下面是“vue中添加与删除关键字搜索功能”的完整攻略。 1.创建搜索框 首先,我们需要在页面上创建一个输入框,供用户输入搜索关键字。可以使用Vue中的v-model指令来实现双向数据绑定,将用户输入的关键字与Vue实例中的数据绑定起来。 示例代码: <template> <div> <input type="text&…

    Vue 2023年5月27日
    00
  • 详解Vue的键盘事件

    详解Vue的键盘事件 Vue.js是一个流行的JavaScript框架,它减轻了开发者在构建大型Web应用程序方面的工作负担,并将应用程序的数据和界面分离。Vue.js还提供了一些内置的事件绑定选项,其中包括与键盘事件相关的选项。 键盘事件介绍 键盘事件是用户通过打字机输入字符的过程中触发的事件。Vue.js提供了四种键盘事件: @keydown: even…

    Vue 2023年5月28日
    00
  • vue 多入口文件搭建 vue多页面搭建的实例讲解

    下面是详细讲解”vue 多入口文件搭建 vue多页面搭建的实例讲解”的攻略: 1. 前置条件 为了搭建 Vue 多入口文件,你需要确保以下工具 已经安装: Node.js:安装最新版本代码和 npm 包 Vue CLI:用于创建 Vue 应用程序的命令行工具 2. 创建 Vue 应用程序 使用 Vue CLI 创建一个新的 Vue 应用程序: vue cre…

    Vue 2023年5月28日
    00
  • Springboot实现Java阿里短信发送代码实例

    Springboot实现Java阿里短信发送代码实例 简介 阿里云短信服务提供了短信发送、查询等功能,便于企业进行验证码、营销等短信业务。本文将以Springboot为基础,讲解如何使用Java SDK来实现阿里短信服务。 准备工作 在使用阿里短信服务之前,需要先进行以下准备工作: 在阿里云控制台中开通短信服务并获取Access Key ID和Access …

    Vue 2023年5月28日
    00
  • Vue-Quill-Editor富文本编辑器的使用教程

    Vue-Quill-Editor富文本编辑器的使用教程 Vue-Quill-Editor是一个基于Vue.js和Quill.js的富文本编辑器,它可以在Vue.js项目中无缝集成富文本编辑器功能。该插件具有易用性、高度定制化、插件支持等特点,非常适合在Vue.js项目中使用。 本篇教程将详细介绍Vue-Quill-Editor的使用方法,包括环境搭建和基本使…

    Vue 2023年5月27日
    00
  • vue3中$refs的基本使用方法

    当我们需要在Vue组件中直接访问DOM元素时,可以使用Vue的特有属性$refs。在Vue3中,使用$refs的方法与Vue2中略有不同,下面我们来详细讲解vue3中$refs的使用方法。 1. 定义ref属性 要使用$refs属性,我们首先需要在需要访问DOM元素的组件中定义一个ref属性。可以在DOM元素上使用v-bind或简写的冒号来定义ref属性。例…

    Vue 2023年5月28日
    00
合作推广
合作推广
分享本页
返回顶部