为什么“this.setState”不起作用?

2024-04-05

我正在从 API 端点获取 JSON 数据,并希望使用此数据来显示表格。

这是我目前正在尝试的:

var DeliveryOptionsTHeadTh = React.createClass({
  render: function() {
    return (
      <th>{this.props.label}</th>
    );
  }
});

var DeliveryOptionsTHead = React.createClass({
  getInitialState : function(){
      return {
         data : []
      }

  },

  componentDidMount: function() {
    $.get(this.props.source, function(result) {
      console.log(result);
      this.setState({data: result});
    }.bind(this));
  },

  render: function() {
    return (
      <thead>
        <tr>
          <DeliveryOptionsTHeadTh label={this.state.data.days[0].label}/>
        </tr>
      </thead>
    );
  }
});

var DeliveryOptionsTable = React.createClass({
  render: function() {
    return (
      <table className='pure-table pure-table-horizontal'>
        <DeliveryOptionsTHead source="<REDACTED>" />
        <tbody>

        </tbody>
      </table>
    );
  }
});

ReactDOM.render(
  <DeliveryOptionsTable />,
  document.getElementById('example')
)

但这返回Uncaught TypeError: Cannot read property '0' of undefined。为什么这不起作用?


您需要更改初始状态,如days are Array of Objects你正在尝试render方法获取第一个元素Array但在初始状态下没有days属性,这就是你收到错误的原因

var DeliveryOptionsTHead = React.createClass({
  getInitialState : function(){
    return {
      data: { days: [] } 
    }
  },

  componentDidMount: function() {
    $.get(this.props.source, function(result) {
      this.setState({data: result});
    }.bind(this));
  },

  render: function() {
    var days = this.state.data.days.map(function (day) {
      return <DeliveryOptionsTHeadTh label={day.label} key={ day.date } />;
    });

    return <thead>
      <tr>{ days }</tr>
    </thead>;
  }
});

Example http://jsfiddle.net/69z2wepo/26302/

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

为什么“this.setState”不起作用? 的相关文章

随机推荐

  • java中特定货币的货币符号的位置

    我知道如何使用 locale 和 NumberFormat 类获取 java 中货币的货币对象和其他详细信息 但我无法在 API 中找到任何内容来了解 货币符号是在开始还是结束时显示 例如 在美国 10 表示 10 美元 其中 位于数字开头
  • 如何在 Trigger.io 上禁用“ipad 兼容性”?

    我需要我的应用程序只能在 iPhone 上运行 而不能在 iPAD 上运行 这个要怎么设置呢 我们在平台 v1 4 16 中提供了对此的支持 http docs trigger io en v1 4 release notes html v
  • 我可以检测 Android 设备上是否存在“LED 通知”吗?

    背景 我有一个带有通知的应用程序 我想支持 LED 通知 并且它运行良好 在我的偏好中 我允许用户自定义 LED 通知 问题 如果设备不支持 LED 自定义选项 我不想显示这些选项 因为这可能会让用户感到困惑 如果您拥有的只是廉价的 And
  • 为嵌套的 ScriptableObjects 构建编辑器以在纸牌游戏中组合能力

    我正在构建一款纸牌游戏 我希望有一个干净的纸牌能力架构 我有一个带有卡片属性的 CardData ScriptableObject 我希望卡牌能力组合在一起来描述卡牌的作用 比如一张名为绘制和治疗卡抽 2 张牌并在玩时恢复 5 点生命值 我
  • 类型稳定性如何让 Julia 如此之快?

    我听说类型稳定性使 Julia 如此之快 同时仍然与其他解释语言 例如 Python 一样具有表达能力 类型稳定性允许编译器在编译时直接根据输入类型确定函数的输出类型 因为 Julia 专门针对每种输入类型进行编译 这意味着如果所有函数都是
  • HtmlUnit无法获取IFRAME添加的js/ajax

    我刚刚开始学习htmlunit http htmlunit sourceforge net by gargoylesoftware 我有一个问题 页面上有一个 iframe 单击按钮后会出现该 iframe 当我尝试按名称获取此 ifram
  • 使用 MockMVC 测试 Spring MVC 请求参数映射和 MultipartFile

    我正在尝试使用 Spring MVC 3 2 创建一个 RESTful 控制器端点来上传文件以及该文件的元数据映射 定义如下 Controller RequestMapping file public class FileServiceCo
  • 如何在scala中使用相对路径读取文本文件

    我有一个用 scala 编写的简单 mvn 项目 我想访问一个文本文件并读取其内容 该代码工作正常 但唯一的问题是我在读取文本文件时给出了绝对路径 以下是我的项目的目录结构 如何使用相对路径来读取该文件 我是否必须将 movie txt 文
  • Service 或 IntentService 或 AlarmManager 方法

    我正在构建一个类似游戏的应用程序 并且我一直在阅读有关在后台 前台 警报等中使用服务运行事物的所有不同方法 我有点困惑 我的应用程序会像这样 示例 用户按下 Main 中的按钮 然后他可以关闭应用程序 30 分钟后 Activity1 打开
  • Azure JWT 具有属性“hasgroups=true”而不是组属性对象

    我有一个带有 Azure Active Directory 身份验证的 Azure Web 应用程序 使用 adal Angular 制作 在我设置的应用程序清单中 groupMembershipClaims SecurityGroup 奇
  • Neo4j:传统索引和自动索引与新标签库模式索引

    我目前正在寻找索引数据的最佳方法 从我的角度来看 有以下三个选项 1 遗留索引 索引管理器 API 2 自动索引 neo4j properties node auto indexing true ode keys indexable nam
  • 如何使用 Head 和 Tail 打印文件的特定行

    我想说输出文件的第 5 10 行 作为传入的参数 我怎样才能使用head and tail去做这个 where firstline 2 and lastline 3 and filename 1 运行它应该如下所示 lines sh fil
  • RNetlogo 和 NetLogo 5.3 错误

    我一直在 NetLogo 5 2 1 中使用 RNetLogo 没有出现任何问题 现在我使用 NetLogo 5 3 并收到此错误 gt library RNetLogo gt nl path lt Applications NetLogo
  • 行计数 C++

    我正在处理程序中的逻辑行数 省略注释和黑线 计数线正在工作 但我不知道如何省略注释行 我尝试 if line comment 但它只检查以以下开头的行 如果旁边有文本 则不会将其视为注释行 最后当我知道总行数和总注释行数时 我会减去tota
  • FBSDKLoginManager logInWithPublishPermissions 始终返回 isCancelled=YES

    我无法弄清楚如何让用户登录我的应用程序 FBSDKAccessToken currentAccessToken 为零 所以我打电话 FBSDKLoginManager alloc init logInWithPublishPermissio
  • 任何自动更新页面所有帖子时间的 jquery 插件

    我有一个页面 其中有很多帖子 显示它们发布的时间 我想每 1 分钟后继续更新该时间 一种简单的方法可以给它们一个相同的类 并在 1 分钟后获取所有元素并更新时间 有什么更好的解决方案 您可以使用像这样的简单插件 fn UpdateSince
  • 基数排序如何工作?

    我不知道为什么这对我来说如此难以理解 我浏览了 wiki 页面和伪代码 以及实际代码 试图了解基数排序算法的工作原理 相对于存储桶 我在这里寻找错误的东西吗 我应该研究桶排序吗 有人能给我一个简化版本的工作原理吗 作为参考 这里是一个代码块
  • 当 ListView 项可见或不可见时获取事件

    我想知道 ListView 中的视图是否有某种 OnVisibilyChangeListener 因为我希望每次 ListView 项更改其可见性时都调用一个方法 我知道 OnPreDrawListener 来检查视图是否可见 但是我如何检
  • 如何在ansible中为变量分配随机数?

    这是一个 ansible 脚本 我希望它能打印出相同的随机数 3 次 相反 它打印出三个随机数 如何将随机数分配给 ansible 中的变量 以便它在整个剧本中固定 name Test random filter hosts localho
  • 为什么“this.setState”不起作用?

    我正在从 API 端点获取 JSON 数据 并希望使用此数据来显示表格 这是我目前正在尝试的 var DeliveryOptionsTHeadTh React createClass render function return th th