"यदि कोई कर्मचारी अपना काम अच्छी तरह से करना चाहता है, तो उसे पहले अपने औजारों को तेज करना होगा।" - कन्फ्यूशियस, "द एनालेक्ट्स ऑफ कन्फ्यूशियस। लू लिंगगोंग"
मुखपृष्ठ > प्रोग्रामिंग > खतरनाक ढंग से SetInnerHTML का उपयोग करके रिएक्ट में HTML स्ट्रिंग्स को सुरक्षित रूप से कैसे प्रस्तुत करें?

खतरनाक ढंग से SetInnerHTML का उपयोग करके रिएक्ट में HTML स्ट्रिंग्स को सुरक्षित रूप से कैसे प्रस्तुत करें?

2024-11-18 को प्रकाशित
ब्राउज़ करें:812

How to Safely Render HTML Strings in React Using dangerouslySetInnerHTML?

HTML स्ट्रिंग्स को HTML के रूप में सुरक्षित रूप से प्रस्तुत करना

इस परिदृश्य में, समस्या तब उत्पन्न होती है जब HTML सामग्री की एक सामान्य स्ट्रिंग को प्रस्तुत करने का प्रयास किया जाता है, लेकिन यह इसके बजाय HTML के रूप में व्याख्या किए बिना एक स्ट्रिंग के रूप में प्रकट होता है। यह आमतौर पर तब सामने आता है जब खतरनाक तरीके से SetInnerHTML में उपयोग की जा रही संपत्ति एक स्ट्रिंग के बजाय एक ऑब्जेक्ट है।

इसे हल करने के लिए, सुनिश्चित करें कि this.props.match.description संपत्ति एक स्ट्रिंग है। यदि ऐसा नहीं है, तो इसे संपत्ति को सौंपने से पहले इसे HTML में परिवर्तित करें।

Handling HTML Entities

HTML इकाइयों के साथ व्यवहार करते समय अतिरिक्त जटिलताएँ उत्पन्न होती हैं। ऐसे मामलों में, आपको इकाइयों को खतरनाक तरीके से SetInnerHTML पर भेजने से पहले उन्हें डीकोड करना होगा।

उदाहरण कोड

निम्नलिखित उदाहरण कोड पर विचार करें:

class App extends React.Component {
  constructor() {
    super();
    this.state = {
      description: '

Our Opportunity:

', }; } htmlDecode(input) { const e = document.createElement('div'); e.innerHTML = input; return e.childNodes.length === 0 ? '' : e.childNodes[0].nodeValue; } render() { return (
); } } ReactDOM.render(, document.getElementById('root'));

इस उदाहरण में, विवरण प्रॉपर्टी में HTML इकाइयां () शामिल हैं। इसे सही ढंग से प्रस्तुत करने के लिए, HTML को खतरनाक रूप से SetInnerHTML में पास करने से पहले इन इकाइयों को डीकोड करने के लिए htmlDecode फ़ंक्शन का उपयोग किया जाता है।

नवीनतम ट्यूटोरियल अधिक>

चीनी भाषा का अध्ययन करें

अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।

Copyright© 2022 湘ICP备2022001581号-3