Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/430.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/github/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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.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+;GithubAPI(octokat.js)_Javascript_Github_Vue.js_Github Api_Octokat.js - Fatal编程技术网

Javascript 在Vue.Js+;GithubAPI(octokat.js)

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

(这里是初学者)

我正在尝试在Vue.js中创建一个应用程序,让我能够与GitHub API交互。一开始我试着使用,但由于分页的问题,我改为使用

我尝试使用vue github api文档中建议的相同模板,只需切换到octokat即可

为简洁起见,我将包括以下小样本:

<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)
});