Javascript 在Vue.Js+;GithubAPI(octokat.js)
(这里是初学者) 我正在尝试在Vue.js中创建一个应用程序,让我能够与GitHub API交互。一开始我试着使用,但由于分页的问题,我改为使用 我尝试使用vue github api文档中建议的相同模板,只需切换到octokat即可 为简洁起见,我将包括以下小样本:Javascript 在Vue.Js+;GithubAPI(octokat.js),javascript,github,vue.js,github-api,octokat.js,Javascript,Github,Vue.js,Github Api,Octokat.js,(这里是初学者) 我正在尝试在Vue.js中创建一个应用程序,让我能够与GitHub API交互。一开始我试着使用,但由于分页的问题,我改为使用 我尝试使用vue github api文档中建议的相同模板,只需切换到octokat即可 为简洁起见,我将包括以下小样本: <template> <div class="row"> <div class="col-sm-3"> <div class="panel panel-defaul
<template>
<div class="row">
<div class="col-sm-3">
<div class="panel panel-default">
{{ user.name }}
</div>
</div>
</div>
</template>
<script>
export default {
data () {
return {
userData: {},
issuesList: {}
}
},
mounted: function () {
var Octokat = require('octokat')
var octo = new Octokat({
token: 'xxxxx'
})
octo.user.fetch(function (e, val) {
this.userData = Object.assign({}, val)
// or this.userData = val (not sure, which is correct)
})
},
computed: {
user: function () {
if (this.userData) {
return this.userData
}
return 'Uh-oh...'
}
}
}
</script>
<style></style>
如果我愿意这样做:
this.userData = octo.user.fetch()
如果我使用console.log,我会得到以下结果:
[]
我似乎无法从“fetch”命令中获得所需的输出
是否有人处理过类似的问题,或者您发现了一个明显的错误?让我们看看从GitHub API获取的代码:
octo.user.fetch(function (e, val) {
this.userData = Object.assign({}, val)
// or this.userData = val (not sure, which is correct)
});
在回调函数中,您正试图分配给this.userData,但它不起作用
这里你要看的是这个
指的是什么?
您正在回调中将this.userData
分配给octo.user.fetch
。因此,此
未绑定到您的Vue实例–它将绑定到调用它的函数,或者在您的情况下,未定义
,因为传输程序很可能添加了一个“use-strict”
杂注
对此我能做些什么?
在ES6中,我们有。箭头函数没有绑定到它的this
,因此this
仍然引用您的Vue实例
octo.user.fetch((e, val) => {
this.userData = Object.assign({}, val)
});
进一步阅读
octo.user.fetch(函数(e,val){
更改为箭头函数。如下所示:octo.user.fetch((e,val)=>{
@wing它真的很管用!怎么可能呢?非常感谢你的评论!最有趣的是,我不久前开始阅读YDKJS,但我现在在第二本书的自动取款机上。现在更有意义了,当我最终读到第三本书时,我会收获更多。
octo.user.fetch((e, val) => {
this.userData = Object.assign({}, val)
});