javascript - 类型错误 : Cannot read property 'actualPersonAlbum' of undefined

标签 javascript reactjs redux

就像三天前一样,当我尝试了解类组件 React 中 redux 的状态时,我正在处理这个错误,问题是当我尝试了解状态“actualPersonAlbum”时,这里是我的代码 image about the mistake

React class WorkSection extends React.Component {
  render() {
    const { classes } = this.props;
    const {relations} = this.props.relations;
    console.log(relations); 
    const {actualPersonAlbum} = this.props.actualPersonAlbum;  //The probleeeeeem 
    console.log(actualPersonAlbum);
    return (
       <section style={ sectionStyle }>
      </section>
    );
  }
}

WorkSection.propTypes = {
  classes: PropTypes.object
};

const mapStateToProps = state => ({
  relations: state.relations,
  actualPersonAlbum: state.actualPersonAlbum,
});

export default connect(mapStateToProps) (withStyles(workStyle)(withRouter(WorkSection)));

Redux reducer

import { GET_RELATIONS, 
  SET_ACTUAL_ALBUM_PERSON } from "../actions/types";

const initialState = {
    actualPersonAlbum: "",
};

export default function(state = initialState, action) {
  switch (action.type) {
    case SET_ACTUAL_ALBUM_PERSON:
        return{
    actualPersonAlbum:action.payload,

        };
    default:
      return state;
  }
}

Redux 操作

import {GET_RELATIONS,
    SET_ACTUAL_ALBUM_PERSON
} from "./types";
import axios from "axios";

export const setActualAlbumPerson = actualPersonAlbum => {
    return {
      type: SET_ACTUAL_ALBUM_PERSON,
      payload: actualPersonAlbum
    }
  }

最佳答案

您实际上想要做的是解构actualPersonAlbum

如果您想让它起作用,数据 Prop 应该如下所示:

{ 
    actualPersonAlbum: {
        actualPersonAlbum: ...,
    },
}

您不是只想解构它一次吗?

const { actualPersonAlbum } = this.props

但是,如果您确实想对该属性进行两次解构,只需确保 actualPersonAlbum 尚未定义的可能性(因为它来自异步请求等)。

const { actualPersonAlbum } = this.props.actualPersonAlbum || {};  

关于javascript - 类型错误 : Cannot read property 'actualPersonAlbum' of undefined,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59148083/

相关文章:

javascript - 如何获取 api 的身份验证

javascript - 不知道为什么这会进入 JavaScript 中的最终 if 语句

javascript - 飞行前响应失败,状态为 405

javascript - react 脚本和 jest 版本 24.7.1 之间的冲突

javascript - Storybook AddDecorators 不提供 redux 存储

reactjs - React Redux 和继承

reactjs - 您可能忘记从定义它的文件中导出组件,或者您可能混淆了默认导入和命名导入

javascript - 是否有可能以纯函数式的方式实现 Haskell 的 unzip 的 js 版本?

javascript - 如何使具有多个绝对定位元素的 div 响应

javascript - 为什么 react 将字符串数组渲染为 HTML 元素?