首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >一旦承诺得到解决,如何加载API数据以响应组件?

一旦承诺得到解决,如何加载API数据以响应组件?
EN

Stack Overflow用户
提问于 2018-06-10 11:29:35
回答 1查看 873关注 0票数 2

我正在尝试创建一个简单的应用程序,该应用程序调用Github 来获取文件并在CodeMirror组件中显示该文件。代码如下所示。但是,目前,即使我可以在控制台中记录文件,也无法在CodeMirror组件中加载该文件。它只显示[object Promise]

代码语言:javascript
复制
import React from 'react';
import ReactDOM from 'react-dom';
import CodeMirror from 'react-codemirror'
var createReactClass = require('create-react-class');
require('codemirror/lib/codemirror.css');
var axios = require('axios');

var App = createReactClass({
getInitialState: function() {
    return {
        code: getRepos(),

    };
},
updateCode: function(newCode) {
    this.setState({
        code: newCode,
    });
},
render: function() {
    var options = {
        lineNumbers: true,
        styleSelectedText: true,
    };

    return <CodeMirror value={this.state.code.toString()} onChange={this.updateCode} options={options} />
}
});


async function getRepos(){

var code = await axios.get('https://api.github.com/repos/<.java file>',
    {headers: {
            "Accept" : "application/vnd.github.VERSION.raw"
        }
    })
    .then(response => {
        var codeq = response.data;
        return codeq;
    });

    console.log(code);
    return code;

}

ReactDOM.render(<App/>, document.getElementById('root'));

我应该如何做才能使我的CodeMirror组件得到解决的承诺?

我对此反应很新。

EN

回答 1

Stack Overflow用户

发布于 2018-06-10 14:38:59

看来你说得不对。您需要在getRepos()函数中调用componentDidMount,如下所示:

代码语言:javascript
复制
componentDidMount() {
  getRepos().then((res) => this.setState({code: res}))
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50783232

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档