के साथ HTML- स्वरूपित पाठ प्रदर्शित करते समय Invariant उल्लंघन त्रुटि मैं एक प्रतिक्रिया अनुप्रयोग बना रहा हूं जिसके लिए कुछ पाठ प्राप्त करने के लिए बाहरी API का उपयोग करने की आवश्यकता है। समस्या यह है कि पाठ जोर दिखाने के लिए, उदाहरण के लिए HTML टैग के साथ एक स्ट्रिंग के रूप में वापस आ जाता है:प्रतिक्रिया
{ "text": ["The quick <em class='hl'>brown</em> fox"] }
मैं इतना
{this.props.text.map(function(snippet) {
return <div dangerouslySetInnerHTML={{__html: snippet }}></div>
})}
जो समय के सबसे अधिक काम किया जैसे dangerouslySetInnerHTML
का उपयोग किया गया था, लेकिन मैं उदाहरण हैं जिनमें पाठ API द्वारा इस तरह से स्वरूपित किया गया है कि प्रतिक्रिया निम्न त्रुटि फेंकता में चल रहा हूँ:
Uncaught (in promise) Error: Invariant Violation:
Danger: Expected markup to render 7 nodes, but rendered 4
ऐसा लगता है वहाँ वर्तमान में है कोई catch errors in the render function के लिए रास्ता, इसलिए मैं केवल समस्याग्रस्त लोगों को अनदेखा नहीं कर सकता हूं और जारी रख सकता हूं।
टेक्स्ट जोर या चीजों के साथ हाइलाइट करने जैसी चीजों को संभालने का एक बेहतर तरीका है, या शायद स्ट्रिंग को फ़िल्टर या जाल करने का कोई तरीका है जो प्रतिक्रिया को समस्याग्रस्त हो सकती है?
मुझे यह भी ध्यान रखना चाहिए: जब मुझे यह त्रुटि मिलती है, तो मुझे उम्मीद की जाने वाली नोड्स की अधिकतम संख्या 5 है (क्योंकि सरणी में 5 आइटम हैं), इसलिए मुझे यकीन नहीं है कि यह 7 की अपेक्षा क्यों करेगा। .. – jczaplew