मैं क्या कोशिश कर रहा हूं?

राज्य में इनपुट प्रकार टेक्स्ट का मान सेट करने का प्रयास कर रहा है

मैंने अब तक क्या खोजा?

प्रतिक्रिया - ध्यान में न आया लेखन त्रुटि: अपरिभाषित की संपत्ति 'सेटस्टेट' पढ़ा नहीं जा सकता

लेकिन यह मेरे मुद्दे का जवाब नहीं है

त्रुटि विवरण

लेखन त्रुटि: अपरिभाषित के गुण नहीं पढ़ सकता (पढ़ना 'सेटस्टेट')

फ़ंक्शन setEmailVal . में ईमेल का मान सेट करते समय यह त्रुटि आ रही है

enter image description here

घटक

import React from 'react';

class Login extends React.Component {
    constructor(props) {
        super(props);
        this.state = {email: ""};
    }

    setEmailVal(val) {
        this.setState({email: val.currentTarget.value});
    }

    render() {
        return (
            <input type="text" onChange={this.setEmailVal} value={this.state.email} />
        );
    }    
}

export default Login;
1
Pankaj 23 अक्टूबर 2021, 13:34
1
आप this.setState({email: val.currentTarget.value}); को this.setState({email: val.target.value}); में बदलने का प्रयास कर सकते हैं
 – 
tromgy
23 अक्टूबर 2021, 13:51

2 जवाब

सबसे बढ़िया उत्तर

यदि आप निम्नलिखित तरीके से अपना कार्य घोषित करते हैं

    setEmailVal = val => {
        this.setState({email: val.currentTarget.value});
    }

यह बढ़िया काम करता है।

यदि आप इसे दूसरे तरीके से करना चाहते हैं (पुराना, अगर मैं गलत नहीं हूं), तो आपको उप-घटक के लिए कक्षा में फ़ंक्शन को बाध्य करना होगा, यानी कक्षा में ऑन चेंज हैंडलर इसे "देखने" के लिए:

    constructor(props) {
        super(props);
        this.state = {email: ""};
        this.setEmailVal = this.setEmailVal.bind(this);
    }

अंत में, आप रिटर्न कंपोनेंट के अंदर ही डायरेक्ट बाइंड कर सकते हैं

        return (
            <input type="text" onChange={this.setEmailVal.bind(this)} value={this.state.email} />
        );
4
foreverAnIntern 23 अक्टूबर 2021, 13:50