React Native Firebase 状态未定义

React Native Firebase state undefined

我已经尝试了多种实现,但我似乎无法让状态不是未定义的。我试过箭头函数,我试过将它绑定到 onChange 事件中,但似乎没有任何效果。有人可以使用我的代码库并让我了解我做错了什么吗?谢谢!

import React from 'react';
import {View, Image, StyleSheet} from 'react-native';
import {Button, Text, Input} from 'react-native-elements';
import Icon from 'react-native-vector-icons/FontAwesome';

const styles = StyleSheet.create({
    heading: {
        padding: 20,
    },
});

export default class ContactForm extends React.Component
{
    constructor(props) 
    {
        super(props);

        this.state = {
            name: '',
            email: '',
        }
    }

    handleName(e)
    {
        this.setState({name: e.target.value})
        console.log(e.target.value);
    }

    handleEmail(e)
    {
        
    }

    submit(e)
    {
        console.log(this.state.name + " " + this.state.email);
    }

    render() 
    {
    return (
    <View style={styles.heading}>
        <Text h5>Sign up to receive updates/newsletters!</Text>
        <Input placeholder="your name" onChange={this.handleName.bind(this)} />
        <Input placeholder="your email" onChange={this.handleEmail.bind(this)} />
        <Button title="Submit" onPress={this.submit}/>
    </View>
    )
    }
}

您好,您可以这样做,不需要将箭头函数与“this”绑定。

export default class ContactForm extends React.Component
{
    constructor(props) 
    {
        super(props);

        this.state = {
            name: '',
            email: '',
        }
    }

    handleName=(e)=>
    {   console.log(e);
        this.setState({name: e})
        
    }

    handleEmail=(e)=>
    {
        this.setState({email: e})
    }

    submit=()=>
    {
        console.log(this.state.name + " " + this.state.email);
    }

    render() 
    {
    return (
    <View style={styles.heading}>
        <Text h5>Sign up to receive updates/newsletters!</Text>
        <Input placeholder="your name" onChangeText ={this.handleName} /> 
        //change onChange to onChangeText 
        <Input placeholder="your email" onChangeText={this.handleEmail} />
        <Button title="Submit" onPress={this.submit}/>
    </View>
    )
    }
}