当前位置: 首页 > 知识库问答 >
问题:

javascript - 为什么没有显示当前时间?

冯永长
2023-04-24

父组件相关代码
html


<el-dialog  v-if="dialogVisible" :title="dialogTitle" :width="`${dialogWidth}px`"  :visible.sync="dialogVisible" :close-on-click-modal="false">
            <component :is="dialogKey" :ref="dialogKey" :currentForm="dialogForm"></component>
            <div slot="footer">
                <el-button @click="handleDialogClose">取 消</el-button>
                <el-button type="primary" @click="handleSubmit">确 定</el-button>
            </div>
        </el-dialog>

js

dialogForm: {
                splitTime: dayjs().format('YYYY-MM-DD HH:mm:ss')
            }

子组件

<el-form :model="currentForm" ref="currentForm" :rules="rules"  label-width="120px">
    <el-form-item label="预约分裂时间" prop="splitTime">
        <el-date-picker
      v-model="currentForm.splitTime"
      type="datetime"
      value-format='yyyy-MM-dd HH:mm:ss'
      format="yyyy-MM-dd HH:mm:ss"
      placeholder="请选择预约分裂时间">
    </el-date-picker>
    </el-form-item>
  </el-form>

复现步骤:

第一次打开弹框: 时间选择器显示的是当前时间
更改时间选择器的时间之后关闭弹框
第二次打开弹框,显示时间是之前弹框里面时间选择的时间,而不是当前时间?

共有3个答案

王炜
2023-04-24
  • 不应该在子组件里面修改prop, 这违反了vue 的单向数据流的原则
  • 但是你却修改了, 而在重新重新打开时没有初始化splitTime的值
  • 应该在子组件里面注册自定义事件, 父组件监听, 监听到了就修改splitTime
  • 或者在prop传入时, 在子组件里监听dialogForm, 对dialogForm做深拷贝
  • 最后在父组件的el-dialog关闭或打开前出事初始化splitTime, el-dialog有open与close钩子:
  • image.png
廉博赡
2023-04-24

组件加个key试试

<component :key="dialogKey" :is="dialogKey" :ref="dialogKey" :currentForm="dialogForm"></component>
施恩
2023-04-24

:currentForm="dialogForm"

在父组件传入了dialogForm,在子组件更改了currentForm中的splitTime。也就是你修改了引用值。你下次打开传入的是已经修改了的dialogForm。

介绍两种方案:
1.传入深拷贝的dialogForm;
2.在每次打开弹框时初始化dialogForm;

 类似资料:
  • 我使用fiddler监控一个简单的html内容从一个PHP文件运行在localhost。但是每当我按f5刷新页面(浏览器)时,在fiddler中有时整个web会话的字体变成蓝色,即当它实际显示内容(html)时,相反的情况发生在web会话是灰色的时候,它不显示html内容。 注意:始终显示请求/响应标题,这仅用于内容。我还尝试了点技巧(“:80”)并从localhost切换到127.0。0.1.

  • 问题内容: 基本上我想知道为什么它什么都不输出: 您可以假设它应该产生输出,我已经运行另一行来确认 看来您不能多次通过管道传递tail的输出!有人知道这笔交易是什么,有解决方案吗? 编辑:到目前为止,要回答问题,该文件肯定具有应由grep显示的内容。作为grep是否这样做的证据: 输出正确显示,但是如果使用它代替: 没有输出显示。 如果真的有帮助,我正在运行ubuntu 10.04 问题答案: 在

  • 我正在使用下面的活动布局。 和下面的片段布局。 片段被加载到活动布局的“fragment_container”节点中。 我的问题是片段中的“commentbox”字段。当你点击它时,虚拟键盘会出现在碎片内容的下半部分上方,而不是将内容向上推。因此在键入时无法看到文本字段。 我几天来一直在搜索和尝试推荐,比如使用“Android:Windowsoftinputmode=AdjustPan”或某个变种

  • 问题内容: 我正在尝试在CSS的内容中使用FontAwesome。 它与图标而不是图标的代码一起显示。我已关注在线帮助,但仍然无法正常工作 问题答案: 如果您使用的是 JS + SVG版本,请 阅读以下内容:Font Awesome 5在使用JS +SVG版本时显示为空正方形 首先,您只需使用以下命令在head标签中包含Font Awesome 5的CSS文件: 或在CSS文件中: 然后,您需要更

  • 以下项目是从一个在线课程中逐字复制的。它应该显示一个ListView,但什么也不显示。我是一个全新的Android工作室,这只是我在里面的第二个项目。这里有5个文件,我将在下面显示每个文件的内容。我只需要另一双或两双眼睛来发现问题,因为我是“虫子盲”。任何帮助都将不胜感激。 activity_main.xml OurAdapter.java 包com.example.tadhg.uiuxAdapt

  • 您将自动执行著名的歌曲“墙上的99瓶XXX”。你将打印这首歌所有99个诗句的歌词。用循环!如果你不知道歌词,用谷歌查一下。 该方案应: a.如果他们不到21岁,或者他们喜欢苏打水,那么歌词是“墙上有99瓶苏打水” B.如果他们超过21岁,那么是“99瓶啤酒” 您必须使用WHILE循环,并且counter变量必须是print语句的一部分! 所以第一节是: 99瓶苏打水挂在墙上 墙上有98瓶苏打水 最