无法将undefined转换为object(object.keys()函数)

时间:2018-03-05 03:40:39

标签: javascript reactjs react-redux

我正在尝试遍历redux存储并渲染所有对象。在尝试创建对象数组时,我遇到以下错误

enter image description here

相关的代码段:

class VictoryChartComp extends React.Component{
constructor(props) {
  super(props);
  //this.ChartsArray = [];
  this.ChartsArray = Object.keys(this.props.newcharts).map(function (key) {
    if (this.props.newcharts.type == 'victory') {
    var item = this.props.newcharts[key];
    return item;
  }
}); 
}

整个代码可以在这里找到:https://codesandbox.io/s/xr5wk9v35o

我也试图声明'this.ChartsArray'(注释行),但问题仍然存在。

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:0)

我在您的沙盒上对此进行了测试,错误的修复当然是验证this.props.newcharts不是nullundefined。来自VictoryChartComp.js

this.ChartsArray = this.props.newcharts
  ? Object.keys(this.props.newcharts).map(function(key) {
    if (this.props.newcharts.type === "victory") {
      var item = this.props.newcharts[key];
        return item;
      }
    })
  : [];

如果ChartsArraythis.props.newCharts,则null不会定义undefined

即使这解决了控制台错误并允许组件呈现它也是空白的 - 因为newCharts在我的执行中是newCharts。我不确定这是不是你真正想要的。您可能需要df