Элемент внутри объекта возвращается как неопределенный - PullRequest
0 голосов
/ 29 июня 2019

Я передал объект своему компоненту как опору. Я могу получить к нему доступ, и он возвращает его как объект, но когда я пытаюсь получить доступ к элементу из объекта, который, я уверен, существует, он говорит undefined.

Когда я запускаю это:

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

class ListItem extends Component {
    render() {
        const { titleStyle } = styles;
        console.log(this.props.library);
        console.log(this.props.library.title);

        return (
            <CardSection>
                <Text style={titleStyle}>{this.props.library.title}</Text>
            </CardSection>
        );
    }
}

Я понял:

{…}
​
    index: 0
​
    item: Object { id: 0, title: "Webpack", description: "Webpack is a module bundler. It packs CommonJs/AMD modules i. e. for the browser. Allows to split your codebase into multiple bundles, which can be loaded on demand." }

undefined

Этот результат за последние console.log() находится внизу.

Это компонент, из которого я передаю объект библиотеки:

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() {
        return (
            <FlatList
            data={this.props.libraries}
            renderItem={this.renderItem}
            keyExtractor={library => library.id.toString()}
            />
        );
    }
}

const mapStateToProps = (state) => ({ libraries: state.libraries });

export default connect(mapStateToProps)(LibraryList);

Проверьте полный код здесь: https://github.com/ceerees12/tech_stack

Ответы [ 2 ]

0 голосов
/ 29 июня 2019

Попробуйте изменить renderItem={this.renderItem} на renderItem={() =>this.renderItem(library)}

0 голосов
/ 29 июня 2019

Вы не передаете title в компоненте, если вы пропустите опору title в своем ListItem компоненте, вы сможете получить доступ к this.props.title, и если title находится в libraryопора тогда должна this.props.library.title.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...