首页 > 解决方案 > React Native 中的 this.props undefined: TypeError: Cannot read property 'title' of undefined

问题描述

我正在尝试创建一个作为平面列表的组件,并使用 probs 将一些信息传递给_renderItem函数中的组件:

class ArticleList extends React.PureComponent {
  _renderItem = ({ item }) => (
    <DummyText title={item.title} />
  );

  render() {
    return (
      <View>
        <FlatList
          data={articles}
          renderItem={this._renderItem}
          keyExtractor={(item, index) => index.toString()}
        />
      </View>
    );
  }
}

export default ArticleList;

这是 FlatList 的组件。

DummyText 组件非常简单,仅供试用:

class DummyText extends React.Component {
  render() {
    console.log(this.props);
    return (
      <View>
        <Text>{this.props.title}</Text>
      </View>
    );
  }
}

export default DummyText;

但是,当我这样做时,该this.probs部分似乎未定义,并且我收到一条错误消息: TypeError: Cannot read property 'title' of undefined

我已确保该项目具有属性标题,并且如果_renderItem直接创建<View><Text>{item.title}</Text></View>.

标签: reactjsreact-native

解决方案


解决方案

修正错字。

this.probs.title

=>

this.props.title

为什么

通常,undefined消息说没有价值。因此,您可以轻松地从title的父值中知道什么是错误的。包括我在内的错字经常发生,可以通过使用 linter 作为ESLint来防止。


推荐阅读