【问题标题】:can't access property from object [closed]无法从对象访问属性[关闭]
【发布时间】:2019-09-05 02:04:55
【问题描述】:

class EventEdit extends Component {

  constructor(props) {
    super(props);

    const { skillsets, events } = this.props;

    this.state = {
      skillsets : skillsets,
      events : events
    }
  }

  componentWillMount(){
    this.props.getSkillset();
    this.props.getEvent();
  }

  componentWillReceiveProps(props){
    this.setState({
        skillsets : props.skillsets,
        events : props.events,
  })
  }

  render() {
   console.log(this.state.events) //it returns the object perfectly
   console.log(this.state.events.title) //it says cannot read title of undefine
    )
  }
}

const mapStateToProps = (state, ownProps) => {
    let id = ownProps.match.params.event_id;
    return {
      skillsets: state.skillset.skillsets,
      events: state.event.events.find(event => event._id === id)
    }
  }

const mapDispatchToProps = dispatch => {
  return {
    getSkillset: () => { dispatch(getSkillset()) },
    getEvent: () => { dispatch(getEvent()) },
    

  }
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/16.6.3/umd/react.production.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/react-dom/16.6.3/umd/react-dom.production.min.js"></script>

所以,我成功地使用 action redux 从 API 获取数据列表并将其显示在我的组件中。 然后我想编辑数组数据的一项,我得到 id 并过滤它。 实际上每个属性都显示在控制台中,但我无法在 jsx 中显示每个属性

【问题讨论】:

  • 请分享代码而不是快照
  • props.events 在这种情况下必须是 undefined

标签: javascript reactjs react-redux redux-thunk web-frontend


【解决方案1】:

您正在背靠背调度这两个动作,并且在填充道具时多次调用渲染方法。您应该遵循正确的组件生命周期方法并避免组件渲染,直到您对这两个操作都有可用的响应。

【讨论】:

    猜你喜欢
    • 2022-01-23
    • 2021-11-06
    • 2014-03-10
    • 2010-09-05
    • 2011-07-05
    • 1970-01-01
    • 2016-07-22
    相关资源
    最近更新 更多