Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vue.js/6.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
Javascript vue js中未定义对象的属性,但该属性存在于对象中_Javascript_Vue.js_Vuejs2 - Fatal编程技术网

Javascript vue js中未定义对象的属性,但该属性存在于对象中

Javascript vue js中未定义对象的属性,但该属性存在于对象中,javascript,vue.js,vuejs2,Javascript,Vue.js,Vuejs2,有没有人可以帮我,我定义了一个有函数的模块,这个函数返回一个对象。当我调用这个函数时,对象被接收,但当我想访问对象的元素时,它是status,表示未定义 这是我的模块: import firebaseapp from "./firebase"; import store from "../store/index"; const database = firebaseapp.firebase.database(); export default { c

有没有人可以帮我,我定义了一个有函数的模块,这个函数返回一个对象。当我调用这个函数时,对象被接收,但当我想访问对象的元素时,它是status,表示未定义

这是我的模块:

import firebaseapp from "./firebase";
import store from "../store/index";
const database = firebaseapp.firebase.database();

export default {
  createProject(info) {
    var result = {};
    var userId = store.state.user.user.uid;
    info.created_at = firebaseapp.firebase.database.ServerValue.TIMESTAMP;
    info.status = "pendning";
    info.ower = userId;
    const project_ref = database.ref("/projects/" + userId + "/");
    project_ref
      .push()
      .set(info)
      .then(function() {
        result.status = "1";
        result.message = "successfully created";
      })
      .catch(function(error) {
        result.status = "0";
        result.message = error.message;
      });
    return result;
  }
};
这是我想调用的模块

export default {
data() {
    return {
      result: {},
      project: {
        ideal_expert: {}
      }
    };
  },
 gotCreateProject() {
      if (this.$refs.project_form.validate()) {
        this.dialog = true;
        this.result = create_project.createProject(this.project);
        console.log(this.result); //the whole object
        console.log(this.result.status);// the status property of object
      } else {
        this.dialog = false;
      }
      // console.log(this.dialog);
    }
  }
};
输出:
您的代码几乎没有问题

  • 看似不一致的日志-现代浏览器将对象记录为实时引用。您在控制台中看到的不是执行
    console.log
    时object的值。(是的,再一次)
  • 还可以看看下面的小例子。打开浏览器的开发工具并执行代码段。检查浏览器控制台-两个日志都应显示空对象,但第一个日志显示的对象具有属性
    a
    ,该属性是在日志操作后分配的

  • 因为在记录对象及其属性时,对象肯定是空的。因为在
    createProject
    函数中,您正在调用异步函数
    set(info)
    ,该函数返回。然后
    中的所有内容都将在将来的某个时候执行,但肯定会在
    返回结果和
    控制台后执行

  • 从日志(
    \uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu。向对象添加属性是Vue无法检测到的操作-请参阅。定义之前的所有属性并使用
    Vue。按照文档中的说明设置

  • 让obj={}
    日志(“日志1:”,obj)
    log(“日志2:,JSON.parse(JSON.stringify(obj)))
    
    obj.a=1
    我检查了这一点,但没有帮助没有什么帮助?你试过建议的代码了吗?是的,我试过了,但给出了一些错误