【问题标题】:TypeError: Cannot read property 'filter' of undefined, JavascriptTypeError:无法读取未定义的 Javascript 属性“过滤器”
【发布时间】:2019-03-26 08:43:43
【问题描述】:

我正在尝试过滤包含许多空元素和空引用的稀疏数组,我不断收到此错误(TypeError:无法读取未定义的属性“过滤器”),我不确定究竟是什么导致了错误以及如何解决它。这是我的代码。

    sparseArray = this.props.data;
    var CleanArray = sparseArray.filter(function (el) {
        return el != null;
    });

提前致谢!

【问题讨论】:

  • 问题在于 sparseArray 本身没有被定义,而不是数组稀疏 - 似乎根本没有数组 .data 属性。
  • 这意味着 this.props.data 未定义。尝试将其打印到控制台并查看其中包含的内容。
  • 尝试console.log(this.props.data)并发布结果
  • 我认为你必须声明 sparseArray。你能在这里写下整个函数吗?
  • 这里定义的稀疏数组就是整个模块

标签: javascript arrays node.js reactjs


【解决方案1】:

您可以尝试将其包装在 (if this.props.data) 之类的 if 语句中,然后声明 var。如果您从网络获取数据,这将比实际呈现的应用程序花费更长的时间。

您可以做的其他事情是将组件上的 defaultProps 设置为空数组。这将防止您的应用崩溃。

YOUR_COMPONENT_NAME.defaultProps = {
  data: []
};

【讨论】:

    猜你喜欢
    • 2021-12-26
    • 2021-10-31
    • 2020-10-22
    • 2019-05-01
    • 1970-01-01
    • 2017-06-29
    • 2019-05-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多