[reactjs] प्रतिक्रिया देने वाले प्रतिक्रियाएं Uncaught TypeError: सुपर अभिव्यक्ति या तो शून्य या एक फ़ंक्शन होना चाहिए, अपरिभाषित नहीं होना चाहिए


Answers

इसका मतलब है कि आप सबक्लास कुछ चाहते हैं, जो Class होना चाहिए, लेकिन undefined । कारण हो सकते हैं:

  • Class extends ... में टाइपो Class extends ... , इसलिए आप अपरिभाषित चर का विस्तार करते हैं
  • import ... from में टाइपो import ... from , आप मॉड्यूल से undefined आयात करते हैं
  • संदर्भित मॉड्यूल में मान नहीं है, आप आयात करना चाहते हैं (उदाहरण के लिए अप्रचलित मॉड्यूल - प्रतिक्रिया के साथ मामला), इसलिए आप गैर मौजूदा मान आयात नहीं कर रहे हैं ( undefined )
  • संदर्भित मॉड्यूल export ... में टाइपो export ... कथन, इसलिए यह अपरिभाषित चर निर्यात करता है
  • संदर्भित मॉड्यूल सभी में export बयान गायब है, इसलिए यह सिर्फ undefined निर्यात करता है
Question

मैं रिस्पॉज का उपयोग कर रहा हूँ।

जब मैं ब्राउजर के नीचे कोड चलाता हूं तो कहता है:

Uncaught TypeError: सुपर अभिव्यक्ति या तो शून्य या एक फ़ंक्शन होना चाहिए, अपरिभाषित नहीं

गलत क्या है इस पर कोई संकेत की सराहना की जाएगी।

सबसे पहले कोड को संकलित करने के लिए उपयोग की जाने वाली रेखा:

browserify -t reactify -t babelify examples/temp.jsx  -o examples/public/app.js

और कोड:

var React = require('react');

class HelloMessage extends React.Component {
  render() {
    return <div>Hello </div>;
  }
}

अद्यतन: इस समस्या पर तीन दिनों के लिए नरक की आग में जलने के बाद मुझे पता चला कि मैं प्रतिक्रिया के नवीनतम संस्करण का उपयोग नहीं कर रहा था।

वैश्विक स्तर पर स्थापित करें:

sudo npm install -g react@0.13.2

स्थानीय रूप से स्थापित करें:

npm install react@0.13.2

सुनिश्चित करें कि ब्राउज़र भी सही संस्करण का उपयोग कर रहा है:

<script type="text/javascript" src="react-0.13.2.js"></script>

उम्मीद है कि यह किसी और को अनमोल जीवन के तीन दिन बचाता है।




यहां एक जवाब दिया गया है:

import React, { Component } from 'react'; // NOT 'react-dom'



react-native का उपयोग react-native वालों के लिए:

import React, {
  Component,
  StyleSheet,
} from 'react-native';

इस त्रुटि का उत्पादन कर सकते हैं।

जबकि react सीधे संदर्भित react लिए और अधिक स्थिर तरीका है:

import React, { Component } from 'react';
import { StyleSheet } from 'react-native';



मुझे यह समस्या थी क्योंकि मेरी react और react-dom संस्करण विलय के बाद मेल नहीं खाते थे।

मैंने मैन्युअल रूप से उस संस्करण संख्या को दर्ज करके इसे ठीक किया और npm install फिर से चलाया।




जब आपने परिपत्र निर्भरता प्राप्त की है तो मैंने यह त्रुटि देखी है।

class A extends B {}
class B extends C {}
class C extends A {}



बैबेल का उपयोग करना (5.8) मुझे एक ही त्रुटि मिलती है यदि मैं अभिव्यक्ति export default का उपयोग किसी अन्य export साथ संयोजन में करने का प्रयास करता हूं:

export const foo = "foo"
export const bar = "bar"
export default function baz() {}



आपके द्वारा विस्तारित कक्षाओं की जांच वास्तव में मौजूद है, कुछ प्रतिक्रिया विधियों को कम किया गया है, यह 'React.Components' बजाय एक Typo त्रुटि 'React.Components' भी हो सकता है 'React.Component'

शुभ लाभ!!




यदि आप अपनी कक्षा परिभाषा में एक गलत () साथ React.Component निष्पादित करने का प्रयास कर रहे हैं तो आप यह भी प्राप्त कर सकते हैं।

export default class MyComponent extends React.Component() {}
                                                        ^^ REMOVE

जिसे मैं कभी-कभी प्रबंधित करता हूं जब मैं एक स्टेटलेस फंक्शनल घटक से कक्षा में परिवर्तित हो रहा हूं।




मेरे मामले में, प्रतिक्रिया-मूल के साथ, त्रुटि यह थी कि मेरे पास था

import React, {
  AppRegistry,
  Component,
  Text,
  View,
  TouchableHighlight
} from 'react-native';

के बजाय

import React, { Component } from 'react';
import {
  AppRegistry,
  StyleSheet,
  Text,
  View,
  Image,
  AsyncStorage
} from 'react-native';



यह तब भी हो सकता है जब आपने अपने कोड के भीतर import require बजाय require उपयोग require




टाइपस्क्रिप्ट के साथ एक्सपो / प्रतिक्रिया-मूल के साथ एक और घटना: कभी-कभी जब आप पैकेजिंग के बीच में टाइपस्क्रिप्ट फ़ाइलों को पुन: संकलित कर रहे होते हैं, तो प्रतिक्रिया पैकेजर खो जाता है।

मेरे ऐप को दोबारा चलाने का एकमात्र तरीका कैश को साफ़ करना है; यदि आप एक्सपो क्ली का उपयोग कर रहे हैं, तो आप प्रेस आर दबा सकते हैं (यह एक अपरकेस 'आर' है); यह पूरे बंडल का पुनर्निर्माण करेगा। कभी-कभी विकास मोड में स्विच करने से भी मदद मिलती है ....




मेरे पास एक ही समस्या है, बस Navigator से {Navigator} बदलें

import Navigator from 'react-native-deprecated-custom-components'
// to
import {Navigator} from 'react-native-deprecated-custom-components'



इस उत्तर के लिए सही नहीं है, लेकिन अन्य लोगों के लिए एक ही त्रुटि के साथ मेरी हास्यास्पद रूप से मूर्खतापूर्ण गलती संभावित रूप से मदद कर सकती है।

बेवकूफ, मेरी समस्या वर्ग नाम के बाद () सहित फ़ंक्शन नोटेशन का उपयोग कर रही थी।

सुनिश्चित करें कि आपका वाक्यविन्यास सही है। और आपने सही नाम और पथ के साथ किसी बाहरी घटक / मॉड्यूल आयात और निर्यात किए हैं।

यदि आपके पास प्रतिक्रिया का एक नया संस्करण स्थापित है तो यह टेम्पलेट ठीक काम करना चाहिए:

import React, { Component } from 'react'

class ExampleClass extends Component {

    render(){
        return(
            <div>

            </div>
        )
    }
}

export default ExampleClass 



Related