React Starter Kit中的Ajax调用

弗鲁纳克斯

我正在使用React Starter Kit来创建我的第一个React应用程序,并且我正在为Ajax调用而苦苦挣扎。我看到该工具包嵌入了一种执行Ajax调用的方式(通过内部用于应用程序路由的方式):

import fetch from '../../core/fetch';

我已经在组件中添加了它,然后在组件加载时尝试执行Ajax调用。这是我的代码:

  componentDidMount() {

      var moduleManager = 'https://my_domain.com/my_endpoint';

      async function getModules (url) {
          const response = await fetch(url);
          const content = await response.json();
          return content;
      };

      this.state.modulesList = getModules(moduleManager);

      console.log(this.state.modulesList);
  }

我还在渲染函数中使用状态值:

  render() {
    var rows = [];
    for (var i = 0; i < this.state.modulesList.length; i++) {
        rows.push(
            <li>{this.state.modulesList[i]}<li/>
        );
    }

此代码放在一起将其记录在我的控制台中:

Promise {[[PromiseStatus]]: "pending", [[PromiseValue]]: undefined}

然后(成功)执行了Ajax调用,我的控制台现在显示以下内容:

Promise
__proto__:Promise
[[PromiseStatus]]:"resolved"
[[PromiseValue]]:Array[16]

所需的行为当然是更新我的视图:执行ajax调用时,每个数组成员显示一行。

我想念什么?

谢谢

多威德

我建议做什么:

constructor() {
  ...
  // Bind your async function to your stateful component's class
  this.getModules = this.getModules.bind(this);
}

async getModules(url) {
  try {
    // Perform the ajax call
    const response = await fetch(url);

    // Convert respone to json
    const content = await response.json();

    // Process your content (if needed)
    ...

    // Call setState() here
    this.setState({someContent: content});

  } catch(e) {
    console.error(e);
  }
}

componentDidMount() {
  this.getModules(`${URL}`);
}

您实际上无法从async函数返回获取/解析的数据根据此MDN链接async函数返回promise,而不是解析后希望获得的实际数据。

在您的情况下发生的事情是,您实际上是在尝试从async常规(sync)函数(componentDidMount)内部函数接收返回值您可以在实际功能中执行我建议的操作,或者在解析并解析了Promise后.then()使用setStatecomponentDidMount功能。

我建议阅读有关async功能的内容,Promise然后再继续。

祝你好运!

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

react-starter-kit中的require('template.jade')

来自分类Dev

React-starter-kit的构建系统

来自分类Dev

#react-starter-kit React onClick无法在页面上触发

来自分类Dev

MIT react-starter-kit的main.js 404错误

来自分类Dev

React Starter Kit:为客户端引入常量

来自分类Dev

带有 Webpack 的 React-Bootstrap 无法从 react-starter-kit 工作

来自分类Dev

使用React Starter Kit在Select上打开一个链接

来自分类Dev

Susy 与 Google Web Starter Kit

来自分类Dev

Native Starter Kit中函数调用后的冒号是什么意思

来自分类Dev

React Starter Kit和Material UI:应该在muiTheme上下文中提供userAgent以进行服务器端渲染

来自分类Dev

React Starter模板不呈现任何内容

来自分类Dev

在Spring Boot中合并Starter POM

来自分类Dev

委托或使ajax调用react中的组件

来自分类Dev

尝试托管Polymer Starter Kit时的GitHub Pages 404

来自分类Dev

在web-starter-kit中使用sass源映射

来自分类Dev

在web-starter-kit中使用sass源映射

来自分类Dev

使用带有Web Starter Kit的BrowserSync出现错误

来自分类Dev

尝试托管Polymer Starter Kit时的GitHub Pages 404

来自分类Dev

Google的Web Starter Kit错误在git bash命令行终端中运行gulp

来自分类Dev

致命错误:无法在第8行的C:\ wamp \ www \ starter \ ***。php中调用构造函数

来自分类Dev

无法从Storm教程中运行Storm-starter拓扑

来自分类Dev

如何在Office 2010 Starter中禁用自动更新

来自分类Dev

React Router导致Reflux存储中的AJAX调用失败

来自分类Dev

React教程-为什么将其绑定在Ajax调用中

来自分类Dev

React中的Axios AJAX调用仅返回初始状态

来自分类Dev

React在选择过程中调用Ajax请求

来自分类Dev

将Google的Web Starter Kit与AppEngine / Jinja2集成的最佳做法

来自分类Dev

如何永久安装了emacs-starter-kit的菜单栏重新打开?

来自分类Dev

将Google的Web Starter Kit与AppEngine / Jinja2集成的最佳做法

Related 相关文章

  1. 1

    react-starter-kit中的require('template.jade')

  2. 2

    React-starter-kit的构建系统

  3. 3

    #react-starter-kit React onClick无法在页面上触发

  4. 4

    MIT react-starter-kit的main.js 404错误

  5. 5

    React Starter Kit:为客户端引入常量

  6. 6

    带有 Webpack 的 React-Bootstrap 无法从 react-starter-kit 工作

  7. 7

    使用React Starter Kit在Select上打开一个链接

  8. 8

    Susy 与 Google Web Starter Kit

  9. 9

    Native Starter Kit中函数调用后的冒号是什么意思

  10. 10

    React Starter Kit和Material UI:应该在muiTheme上下文中提供userAgent以进行服务器端渲染

  11. 11

    React Starter模板不呈现任何内容

  12. 12

    在Spring Boot中合并Starter POM

  13. 13

    委托或使ajax调用react中的组件

  14. 14

    尝试托管Polymer Starter Kit时的GitHub Pages 404

  15. 15

    在web-starter-kit中使用sass源映射

  16. 16

    在web-starter-kit中使用sass源映射

  17. 17

    使用带有Web Starter Kit的BrowserSync出现错误

  18. 18

    尝试托管Polymer Starter Kit时的GitHub Pages 404

  19. 19

    Google的Web Starter Kit错误在git bash命令行终端中运行gulp

  20. 20

    致命错误:无法在第8行的C:\ wamp \ www \ starter \ ***。php中调用构造函数

  21. 21

    无法从Storm教程中运行Storm-starter拓扑

  22. 22

    如何在Office 2010 Starter中禁用自动更新

  23. 23

    React Router导致Reflux存储中的AJAX调用失败

  24. 24

    React教程-为什么将其绑定在Ajax调用中

  25. 25

    React中的Axios AJAX调用仅返回初始状态

  26. 26

    React在选择过程中调用Ajax请求

  27. 27

    将Google的Web Starter Kit与AppEngine / Jinja2集成的最佳做法

  28. 28

    如何永久安装了emacs-starter-kit的菜单栏重新打开?

  29. 29

    将Google的Web Starter Kit与AppEngine / Jinja2集成的最佳做法

热门标签

归档