MDN का कहना है कि xlink:href
इसके पक्ष में पदावनत किया गया है href
। आपको href
सीधे विशेषता का उपयोग करने में सक्षम होना चाहिए । नीचे दिए गए उदाहरण में दोनों संस्करण शामिल हैं।
प्रतिक्रिया के रूप में 0.14 , xlink:href
संपत्ति के रूप में प्रतिक्रिया के माध्यम से उपलब्ध है xlinkHref
। यह 0.14 के लिए जारी नोटों में "उल्लेखनीय वृद्धि" में से एक के रूप में उल्लिखित है ।
<!-- REACT JSX: -->
<svg>
<use xlinkHref='/svg/svg-sprite#my-icon' />
</svg>
<!-- RENDERS AS: -->
<svg>
<use xlink:href="/svg/svg-sprite#my-icon"></use>
</svg>
अपडेट 2018/06/09: के बारे में जोड़ा जानकारी href
बनाम xlink:href
गुण और अद्यतन उदाहरण दोनों शामिल करना। धन्यवाद @devuxer
अद्यतन 3 : लेखन के समय, प्रतिक्रिया मास्टर एसवीजी गुण यहां पाए जा सकते हैं ।
अद्यतन 2 : ऐसा प्रतीत होता है कि सभी svg विशेषताएँ अब प्रतिक्रिया के माध्यम से उपलब्ध होनी चाहिए (देखें विलय किए गए svg विशेषता PR )।
अद्यतन 1 : आप अतिरिक्त SVG समर्थन लैंडिंग के लिए GitHub पर svg संबंधित मुद्दे पर नज़र रखना चाह सकते हैं । कार्यों में विकास हैं।
डेमो:
const svgReactElement = (
<svg
viewBox="0 0 1340 667"
width="100"
height="100"
>
<image width="667" height="667" href="https://i.imgur.com/w7GCRPb.png"/>
{ /* Deprecated xlink:href usage */ }
<image width="667" height="667" x="673" xlinkHref="https://i.imgur.com/w7GCRPb.png"/>
</svg>
);
var resultHtml = ReactDOMServer.renderToStaticMarkup(svgReactElement);
document.getElementById('render-result-html').innerHTML = escapeHtml(resultHtml);
ReactDOM.render(svgReactElement, document.getElementById('render-result') );
function escapeHtml(unsafe) { return unsafe.replace(/&/g, "&").replace(/</g, "<").replace(/>/g, ">").replace(/"/g, """).replace(/'/g, "'"); }
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/16.4.1/umd/react.development.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/react-dom/16.4.1/umd/react-dom.development.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/react-dom/16.4.1/umd/react-dom-server.browser.development.js"></script>
<h2>Render result of rendering:</h2>
<pre><svg
viewBox="0 0 1340 667"
width="100"
height="100"
>
<image width="667" height="667" href="https://i.imgur.com/w7GCRPb.png"/>
{ /* Deprecated xlink:href usage */ }
<image width="667" height="667" x="673" xlinkHref="https://i.imgur.com/w7GCRPb.png"/>
</svg></pre>
<h2><code>ReactDOMServer.renderToStaticMarkup()</code> output:</h2>
<pre id="render-result-html"></pre>
<h2><code>ReactDOM.render()</code> output:</h2>
<div id="render-result"></div>
<use xlinkHref="/svg/svg-sprite#my-icon" />
।