Vue:数据中的每个对象都是未定义的
Vue: every object in data is undefined
代码 ->
<div>
<h2>Login</h2>
<div class="submit-form">
<div class="form-group">
<label for="email">Title</label>
<input
type="text"
class="form-control"
id="email"
required
v-model="user.email"
name="email"
/>
</div>
<div class="form-group">
<label for="password">Description</label>
<input
class="form-control"
id="password"
required
v-model="user.password"
name="password"
/>
</div>
<button @click="login1">Login</button>
</div>
</div>
脚本 ->
<script>
import router from "../router"
import http from "../http-common"
export default {
data() {
return {
user: {
email: "",
password: ""
}
};
},
methods: {
login1: () => {
console.log(this.user.email);
}
}
}
</script>
在 login1 函数中,它的控制台日志未定义。
这个项目是使用 vue-router 和最新版本的 vue 制作的。
似乎数据 returns 只是未定义。
P.S: 对于这样的问题我很抱歉,我是新手。 :)
问题是您使用的 arrow-function
阻止 this
引用 Vue
组件:
new Vue({
el:"#app",
data() {
return {
user: {
email: "",
password: ""
}
};
},
methods: {
login1: function() {
console.log(this.user);
}
}
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/vue/2.5.17/vue.js"></script>
<div id="app">
<h2>Login</h2>
<div class="submit-form">
<div class="form-group">
<label for="email">Title</label>
<input
type="text"
class="form-control"
id="email"
required
v-model="user.email"
name="email"
/>
</div>
<div class="form-group">
<label for="password">Description</label>
<input
class="form-control"
id="password"
required
v-model="user.password"
name="password"
/>
</div>
<button @click="login1">Login</button>
</div>
</div>
'this' 不能在箭头函数中引用,因为
Arrow functions 执行词法绑定并使用周围范围作为this
的范围
所以你需要删除像
这样的箭头定义
methods: {
login1() {
console.log(this.user.email);
}
}
代码 ->
<div>
<h2>Login</h2>
<div class="submit-form">
<div class="form-group">
<label for="email">Title</label>
<input
type="text"
class="form-control"
id="email"
required
v-model="user.email"
name="email"
/>
</div>
<div class="form-group">
<label for="password">Description</label>
<input
class="form-control"
id="password"
required
v-model="user.password"
name="password"
/>
</div>
<button @click="login1">Login</button>
</div>
</div>
脚本 ->
<script>
import router from "../router"
import http from "../http-common"
export default {
data() {
return {
user: {
email: "",
password: ""
}
};
},
methods: {
login1: () => {
console.log(this.user.email);
}
}
}
</script>
在 login1 函数中,它的控制台日志未定义。 这个项目是使用 vue-router 和最新版本的 vue 制作的。 似乎数据 returns 只是未定义。 P.S: 对于这样的问题我很抱歉,我是新手。 :)
问题是您使用的 arrow-function
阻止 this
引用 Vue
组件:
new Vue({
el:"#app",
data() {
return {
user: {
email: "",
password: ""
}
};
},
methods: {
login1: function() {
console.log(this.user);
}
}
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/vue/2.5.17/vue.js"></script>
<div id="app">
<h2>Login</h2>
<div class="submit-form">
<div class="form-group">
<label for="email">Title</label>
<input
type="text"
class="form-control"
id="email"
required
v-model="user.email"
name="email"
/>
</div>
<div class="form-group">
<label for="password">Description</label>
<input
class="form-control"
id="password"
required
v-model="user.password"
name="password"
/>
</div>
<button @click="login1">Login</button>
</div>
</div>
'this' 不能在箭头函数中引用,因为
Arrow functions 执行词法绑定并使用周围范围作为this
的范围所以你需要删除像
这样的箭头定义methods: {
login1() {
console.log(this.user.email);
}
}