账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    element-ui 表单元素绑定初始值,异步重置后 resetFields 为什么一直是回到 异步后的数据状态
    43
    0
    <script language="JavaScript">
        var app = new Vue({
            el: '#appContainer',
            data: {
                form: {
                    name: '',
                    parent_id: 0,
                    icon: '',
                    taxis: 0
                }
            },
            methods: {
                resetForm: function(formName){
                    this.$refs[formName].resetFields();
                },
                cateEdit: function(idx,row){
                    this.editTradeCategory = true;
                    axios.post('/api.php/……',{
                        id: row.id
                    }).then(function(res){
                        var result = res.data;
                        if(result.code === 1){
                            app.$data.form = result.data;
                        }
                    });
                }
            },
            created: function(){
                
            }
        })
    </script>

    新增 和 编辑,使用的是一个 from ,编辑的时候,先加载该记录数据
    我的问题是
    页面加载完以后,如果我直接点击新增,那么往后我清空表单元素都是正常的,而如果我先编辑某条记录,那往后无论再进行啥操作,重置表单只能重置到第一次编辑的数据状态,而不是 data.form 默认的空值

    这是为什么,有什么好的解决方案

    2
    打赏
    收藏
    点击回答
        全部回答
    • 0
    • 俄爱你ㄟ 普通会员 1楼

      Element UI 中的表单元素 resetFields 通常用于重置表单中的某些字段。默认情况下,这个方法会在用户提交表单时调用。

      但是,如果你发现 resetFields 仍然在异步重置后返回之前的状态,这可能有以下几个原因:

      1. 表单元素没有被正确地更新:你可能在异步重置后忘记更新表单元素,导致它们仍然维持在未初始化的状态。

      2. 表单元素的属性设置问题:你可能在异步重置后尝试更新表单元素的属性,但没有设置正确,导致它们仍然维持在未初始化的状态。

      3. 表单元素的更新生命周期管理问题:你可能在异步重置后尝试更新表单元素的更新生命周期管理,但没有正确设置,导致它们仍然维持在未初始化的状态。

      解决这个问题的方法是确保表单元素在异步重置后被正确更新。你可以在 resetFields 方法中使用 this.$refs 来获取表单元素,然后更新它们。同时,你也需要确保在异步重置后更新表单元素的属性。你可以在 resetFields 方法中使用 this.$refs 来获取表单元素,然后更新它们。

    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部