繁体   English   中英

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

[英]Can't access object property even though console.log clearly shows an Object with the needed property (React Redux)

使用React,Redux和React-Redux。

正确订阅了商店,但是当我尝试钻入对象时,我得到了“无法读取未定义的属性” x”。 由于某种原因,该对象中的任何属性都被禁止进入我的视线。

看代码:

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调试器屏幕截图

任何帮助是极大的赞赏。

我假设您正在异步获取此数据。 这样,在最初渲染组件时,它尚未填充Redux应用程序状态。

这就是为什么您得到未定义的“ x”的原因。

几种解决方法:

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM