【问题标题】:Why I get "TypeError: getData is not a function", however it's a function of componentDidMount()为什么我得到“TypeError:getData 不是函数”,但它是 componentDidMount() 的函数
【发布时间】: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


【解决方案1】:

使用该组件的任何东西都不会将函数传递给 prop getData

【讨论】:

    猜你喜欢
    • 2022-01-02
    • 2021-12-13
    • 2010-12-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-02
    • 1970-01-01
    相关资源
    最近更新 更多