我不是一個非常有經驗的開發人員,所以我可能缺少一些簡單的東西。我有一系列從redux狀態(this.props.assignments.assignments)中獲取的對象。嘗試在渲染返回中調用displayAssignments()時,我得到的.map()不是函數。但是,我有一個附加到onClick的函數,該函數執行相同的映射并將“名稱”記錄到控制臺中,并且該函數按預期工作(當我注釋掉displayAssignments()時)。我不知道為什么.map()可以在我的onClick而不是displayAssignments上工作。我加入了showAssignments函數只是為了測試我的數據是否可以被映射...這使我更加困惑,因為那可以工作...import React, { Component } from 'react';import PropTypes from 'prop-types';import { connect } from 'react-redux';import { getAssignments } from '../../Actions/assignmentActions.js';class Assignments extends Component { componentDidMount() { this.props.getAssignments(); }; showAssignments = () => { console.log(this.props.assignments.assignments); this.props.assignments.assignments.map(assignment => ( console.log(assignment.name) )); }; displayAssignments = () => { this.props.assignments.assignments.map(assignment => { return ( <div> <p>{assignment.name}</p> <p>{assignment.description}</p> </div> ) }) }; render() { return ( <div> <h1>Assignments</h1> <button onClick={this.showAssignments}>Click Me</button> {this.displayAssignments()} </div> ); };};Assignments.propTypes = { getAssignments: PropTypes.func.isRequired, assignments: PropTypes.object.isRequired};const mapStateToProps = state => ({ assignments: state.assignments});export default connect(mapStateToProps, { getAssignments })(Assignments);預期:通過映射呈現作業的名稱和說明實際:獲取this.props.assignments.assignments.map不是函數
.map()在渲染函數之外工作,但是在渲染內部使用時失敗
慕的地6264312
2021-05-14 17:13:24
