首页 > 解决方案 > react native 中的 FlatList 正在渲染但不显示文本

问题描述

我正在尝试通过连接到内部 JSON 文件来呈现平面列表。平面列表似乎正在呈现但未显示任何文本。代码中的卡片列表被渲染了 9 次,JSON 文件中有 9 个对象。但没有文字显示。

// libraryList.js

    import React, { Component } from 'react';
    import { FlatList } from 'react-native';
    import { connect } from 'react-redux';
    import ListItem from './ListItem';

    class LibraryList extends Component {
      renderItem(library) {
          return <ListItem library={library} />;
      }

      render() {
      //  console.log(this.props);
      //  return;
    return (
          <FlatList
          data={this.props.libraries}
          renderItem={this.renderItem}
          keyExtractor={library => library.id}
          />
        );
      }
    }

    const mapStateToProps = state => {
        return { libraries: state.libraries };
      };

    export default connect(mapStateToProps)(LibraryList);

// ListItem.js

    import React, { Component } from 'react';
    import { Text } from 'react-native';
    import { CardSection } from './common';

    class ListItem extends Component {
      render() {
        return (
          <CardSection>
            <Text>{this.props.library.title}</Text>
            </CardSection>
        );
      }
    }

    export default ListItem;
    import React, { Component } from 'react';
    import { Text } from 'react-native';
    import { CardSection } from './common';

    class ListItem extends Component {
      render() {
        return (
          <CardSection>
            <Text>{this.props.library.title}</Text>
            </CardSection>
        );
      }
    }

    export default ListItem;

只想在这个阶段列出标题。

标签: reactjsreact-native

解决方案


您需要修改renderItem,因为FlatList将对象传递给renderItem回调函数。

相反,使用以下

renderItem = ({ item }) => <ListItem library={item} />

推荐阅读