即使console.log清楚地显示具有所需属性的Object(React Redux),也无法访问对象属性

时间:2017-06-27 00:44:27

标签: javascript reactjs redux

使用React,Redux和React-Redux。

正确地订阅了商店,但是当我尝试钻进对象时,我得到一个'无法读取属性'x'of undefined'。对象中的任何属性都是出于某些原因而被禁止的。

参见代码:

import React, { Component } from 'react';
import { connect } from 'react-redux';
import { Link } from 'react-router';

class NavList extends Component {
  render() {
    return (
      <div>hello</div>
    );
  }
}

function mapStateToProps(state) {
  // console.log(state.app.data);
    return {
      data: state.app.data
    };
  }

export default connect(mapStateToProps)(NavList)

屏幕截图:

chrome debugger screen capture

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:0)

我假设您正在获取此数据异步。因此,当您的组件最初呈现时,它尚未填充您的redux应用程序状态。

这就是为什么你得到&#39; x&#39;未定义的。

有很多方法可以解决这个问题:

  1. 在reducer中设置initialState
  2. 使用库(在我的工作中我们使用idx)安全地检查值/属性是否存在
  3. 手动检查,例如state && state.app && state.app.data || []