【问题标题】:React - Cannot read property X of undefinedReact - 无法读取未定义的属性 X
【发布时间】:2017-03-15 15:52:03
【问题描述】:

所以我试图调用 section1.text 中的字符串...我的控制台返回:

这是我的 JSX:

        return (
            <div>
                <h1>{this.props.article.title}</h1>
                <h2>{this.props.article.subTitle}</h2>
                <h3>{this.props.article.body.section1.text}</h3>
            </div>
        );

title 和 subTitle 都返回正常...但是当我尝试获取 section1.text 时它返回:

无法读取未定义的属性“section1”

我在网上查看,我认为这与它是一个嵌套对象有关,但我无法解决我的问题。有什么建议吗?


感谢任何帮助或建议。提前谢谢你?

【问题讨论】:

  • 我的猜测是该对象在渲染时没有body,但它稍后被添加到其中,而你正在与console's deferred evaluation 让你误以为body 在那里。
  • this.props.article.body 还是this.props.article.article.body
  • @KoalaYeung:在那种情况下,他会在this.props.article.title 上遇到问题。
  • 我正在使用“store.article.article”从我的 redux 商店声明一个连接变量,然后在我的 jsx 中使用“this.props.article.subTitle”@KoalaYeung 调用它的属性
  • 就像我说的,它返回标题和子标题没有问题,我认为问题在于我如何在我的 JSX 中调用 body.section1.text

标签: javascript reactjs jsx


【解决方案1】:

使用 Google Chrome 和“React Tools”Chrome 扩展程序在运行时检查组件的状态。

【讨论】:

    【解决方案2】:

    最终文本是否显示在页面上?如果是,我怀疑你的初始状态没有 section1 字段,所以在第一次渲染之前它是空的。 我有类似的问题,这是我的情况的结果,也许你的情况是一样的:)

    【讨论】:

      猜你喜欢
      • 2021-04-28
      • 1970-01-01
      • 2021-10-15
      • 1970-01-01
      • 2022-09-22
      • 1970-01-01
      • 2018-02-16
      • 2019-04-09
      • 2020-10-10
      相关资源
      最近更新 更多