Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/opencv/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vue.js 变量在父VUEJ中已更改,但在子VUEJ中未更改_Vue.js_Vuejs2 - Fatal编程技术网

Vue.js 变量在父VUEJ中已更改,但在子VUEJ中未更改

Vue.js 变量在父VUEJ中已更改,但在子VUEJ中未更改,vue.js,vuejs2,Vue.js,Vuejs2,在父组件发出post请求后,我尝试更改一个布尔变量isSubmited,这将触发子组件的监视,并且将有另一个post请求使用ID表单first response 流从父组件开始 用户点击提交 在parent中,我创建了一个新合同,并从response中收到一个ID(在发出post请求后) 在post请求之后,我更改了一个布尔值,以从child激活手表 在子组件中,我将做另一篇使用ID表单父响应的文章 基本上有两个post请求,第一个在父级,第二个在使用父级ID的子级 来自父组件 <upl

在父组件发出post请求后,我尝试更改一个布尔变量
isSubmited
,这将触发子组件的监视,并且将有另一个post请求使用ID表单first response

流从父组件开始

  • 用户点击提交
  • 在parent中,我创建了一个新合同,并从response中收到一个ID(在发出post请求后)
  • 在post请求之后,我更改了一个布尔值,以从child激活手表
  • 在子组件中,我将做另一篇使用ID表单父响应的文章
  • 基本上有两个post请求,第一个在父级,第二个在使用父级ID的子级

    来自父组件

     <upload-file-test :id_contract="id_contract" :isSubmited="isSubmited" ></upload-file-test>
    
         addContract(data) {
               this.isSubmited = !this.isSubmited;  //from here in child component watch it works
    
               post("/url", data)
                   .then((response) => {
                       this.id_contract = response.data;
                       this.isSubmited = !this.isSubmited;  //from here in child component is not changed
                    }
        }
    
    props: ['id_contract', 'isSubmited']
    
     watch:{
            isSubmited: {
                handler(){
                    console.log('Submited');
                    //here will be a method for post request
                }
            },
      }
    

    正如您在下面的示例中所看到的,更改承诺中的变量会正确触发观察者

    我认为你的帖子失败了,因此实际上没有改变
    提交的

    你应该抓住错误

    post(“/url”,数据)。然后(响应=>{
    this.id_contract=response.data;
    this.isSubmited=!this.isSubmited;
    }).catch(错误=>{
    日志(“post失败”)
    });
    
    Vue.config.devtools=false;
    Vue.config.productionTip=false;
    var app=新的Vue({
    el:“#应用程序”,
    数据:{
    布尔:错
    },
    方法:{
    测试(){
    this.bool=!this.bool;
    取回(“https://jsonplaceholder.typicode.com/todos/1)然后(()=>{
    this.bool=!this.bool;
    });
    }
    },
    观察:{
    布尔:{
    handler(){
    控制台日志(“更改”);
    }
    }
    }
    })
    
    测试
    
    正如您在下面的示例中所看到的,更改承诺中的变量会正确触发观察者

    我认为你的帖子失败了,因此实际上没有改变
    提交的

    你应该抓住错误

    post(“/url”,数据)。然后(响应=>{
    this.id_contract=response.data;
    this.isSubmited=!this.isSubmited;
    }).catch(错误=>{
    日志(“post失败”)
    });
    
    Vue.config.devtools=false;
    Vue.config.productionTip=false;
    var app=新的Vue({
    el:“#应用程序”,
    数据:{
    布尔:错
    },
    方法:{
    测试(){
    this.bool=!this.bool;
    取回(“https://jsonplaceholder.typicode.com/todos/1)然后(()=>{
    this.bool=!this.bool;
    });
    }
    },
    观察:{
    布尔:{
    handler(){
    控制台日志(“更改”);
    }
    }
    }
    })
    
    测试
    
    post(/url`,data)
    post(/url`,data)
    post(/url`,data)
    post(/url`,data)
    post(/url`,data)引号不匹配:
    post(/url`,data)
    谢谢,但我发现了问题。我有一个路由器。推,重置值。我用setTimeout来修复它,并将它放在响应的末尾。谢谢,但是我发现了问题。我有一个路由器。推,重置值。我用setTimeout来修复它,并将它放在响应的末尾。