मेरे पास एक घटक है जो जानबूझकर एक त्रुटि फेंक रहा है, एक त्रुटि सीमा घटक में लपेटा गया है।

यह त्रुटि पकड़ता है और संदेश प्रदर्शित करता है लेकिन केवल एक विभाजित सेकंड के लिए।

यह मेरा लपेटा हुआ घटक है

  useEffect(() => {   
        error(); 
    }, []);

    const error = () => {
        try {
            return [].replace(/'--'/, '')
        } catch (error) {
           throw(error)
            
        }
    }

और मेरी त्रुटि सीमा घटक

class ErrorBoundary extends Component {
    constructor(props) {
      super(props);
      this.state = { hasError: false };
    }
  
    static getDerivedStateFromError(error) {
        console.log('derived', error)
      // Update state so the next render will show the fallback UI.
      return { hasError: true };
    }
  
    componentDidCatch(error, errorInfo) {
        console.log('error did catch', error)
      this.setState({ hasError: true})
    }
  
    render() {
      if (this.state.hasError) {
        return (
            <h1>Something went wrong.</h1>
        );
      }
  
      return this.props.children; 
    }
  }

तब मैं घटकों की घोषणा कर रहा हूँ जैसे

<ErrorBoundary>
   <ProfileContainer />
</ErrorBoundary>

जब मेरा घटक लोड होता है तो यह त्रुटि को पकड़ता है और इसे सीमा घटक में प्राप्त कर रहा है। यह त्रुटि संदेश प्रदर्शित करता है लेकिन फिर तुरंत क्रैश हो जाता है

enter image description here

क्या मैं इसे गलत तरीके से संभाल रहा हूं? मुझे पता है कि त्रुटि सीमाएं डीओएम त्रुटियों के लिए हैं लेकिन यह दिलचस्प है कि यह त्रुटि को पकड़ रहा है।

किसी भी मदद की बहुत सराहना की

3
user10045300 4 जिंदा 2021, 21:30

1 उत्तर

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

यह जानबूझकर है। त्रुटि सीमाएं मुख्य रूप से उत्पादन के लिए उपयोगी होती हैं, लेकिन विकास में, प्रतिक्रिया त्रुटियों को यथासंभव अत्यधिक दृश्यमान बनाना चाहती है (इसलिए स्टैक ट्रेस कोई फर्क नहीं पड़ता)।

उत्पादन मोड में, आपकी साइट केवल त्रुटि सीमा UI दिखाएगी।

5
Dyn4sty 4 जिंदा 2021, 22:34
धन्यवाद यह जानना वास्तव में उपयोगी है!
 – 
user10045300
4 जिंदा 2021, 22:54