【发布时间】:2021-08-07 13:48:34
【问题描述】:
这是我的代码:
从'react'导入反应,{组件};
import './item-list.css'; // import SwapiService from '../../services/swapi'; import Spinner from "../spinner/spinner"; export default class ItemList extends Component { state = { itemList: null }; componentDidMount() { const { getData } = this.props; getData() .then((itemList) => { this.setState({ itemList }); }); } renderItems(arr) { return arr.map((item) => { const { id } = item; const label = this.props.children(item); return ( <li className="list-group-item" key={id} onClick={() => this.props.onItemSelected(id)}> {label} </li> ); }); } render() { const { itemList } = this.state; if (!itemList) { return <Spinner />; } const items = this.renderItems(itemList); return ( <ul className="item-list list-group"> {items} </ul> ); } }
错误: 类型错误:getData 不是函数 ItemList.componentDidMount
我不明白为什么我在 getData() 的项目中遇到此错误。我不知道如何解决这个错误。
【问题讨论】:
-
您能否在您使用此组件的确切位置添加代码
ItemList? -
请提供更多关于 ItemList 父组件的代码
-
const itemList = (
onItemSelected={this.onPersonSelected} getData={this.swapiService.getAllPeople} {(i) => ( )跨度>${i.name} (${i.birthYear}))} -
如果您要更改 ItemList 组件中的
getData函数,那么将其作为道具传递的目的是什么 -
什么是
this.swapiService.getAllPeople?
标签: javascript reactjs react-redux react-router