D
D
Dmitry Petrov2017-06-21 20:46:29
JavaScript
Dmitry Petrov, 2017-06-21 20:46:29

Failed prop type: Invalid prop?

Failed prop type: Invalid prop 'renderRow' of type 'function' supplied to 'Card', expected 'object'.
Failed prop type: Invalid prop 'dataArray' of type 'array' supplied to 'Card', expected 'object'.

import React, { Component } from 'react';
import {
    Text,
    AsyncStorage,
    TextInput
} from 'react-native';

import {
    Container,
    Card,
    CardItem,
    Header,
    Footer,
    Title,
    Button,
    Icon,
    Content,
    Body,
    List,
    Item,
    Input
} from 'native-base';

import * as firebase from 'firebase';

const firebaseConfig = {
    apiKey: "myKey",
    authDomain: "myApp.firebaseapp.com",
    databaseURL: "myApp.firebaseio.com",
    projectId: "myApp",
    storageBucket: "myApp.appspot.com",
    messagingSenderId: "384632182223"
  };
const firebaseApp = firebase.initializeApp(firebaseConfig);

export default class Pizza extends Component {
    constructor(props) {
        super(props);
        this.tasksRef = firebaseApp.database().ref();
        this.state = {
            user:null,
            loading: true,
            newTask: ""
        }
    }

    componentDidMount(){
        this.listenForTasks(this.tasksRef);
    }

    listenForTasks(tasksRef) {
        tasksRef.on('value', (dataSnapshot) => {
            var tasks = [];
            dataSnapshot.forEach((child) => {
                tasks.push({
                    name: child.val().name,
                    _key: child.key
                });
            });

            this.setState({
                tasks:tasks
            });
        });
    }

    _renderItem(task) {
        return (
            <CardItem>
                <Text>{task.name}</Text>
            </CardItem>
        );
    }

    _addTask() {
        if (this.state.newTask === "") {
            return;
        }
        this.tasksRef.push({ name: this.state.newTask });
        this.setState({newTask: ""});
    }

    render() {
        return(
            <Container>
                <Header style={{backgroundColor: '#665CAC'}} >
                    <Body>
                        <Title style={{ color: '#fff' }}>My Todos</Title>
                    </Body>
                </Header>
                <Content >
                    <Item>
                        <Icon name='ios-create-outline' />
                        <Input 
                            value={this.state.newTask}
                            placeholder='New task...'
                            onChangeText={(text) => this.setState({newTask: text})}
                        />
                        <Button onPress={this._addTask.bind(this)} >
                            <Icon name='ios-add' />
                        </Button>
                    </Item>
                    
                    <Card 
                        dataArray={this.state.tasks}
                        renderRow={this._renderItem.bind(this)} 
                    >
                    </Card>
                </Content>
            </Container>
        );
    }

}

Answer the question

In order to leave comments, you need to log in

Didn't find what you were looking for?

Ask your question

Ask a Question

731 491 924 answers to any question