Ich habe eine Komponente, die ein div mit einem Punktgittermuster bereitstellen sollte.Inline-SVG-Hintergrundbild funktioniert nicht in React.js
Die Funktion, die die Arbeit machen sollte wie folgt aussieht:
drawSquareDotGrid(distance, unit, colour){
var newGrid = "data:image/svg+xml;utf8,<svg width=\""+distance+unit+"\" height=\""+distance+unit+"\"><circle cx=\"4mm\" cy=\"4mm\" r=\"0.3mm\" fill=\""+colour+ "\"/></svg>"
this.setState({grid: newGrid })
}
und dies ist meine Render-Funktion:
render() {
const windowHeight = window.innerHeight - 105
const sx = {width: "100%",
height: windowHeight,
backgroundImage: 'url('+ this.state.grid +')'}
return (
<div style={sx}></div>
)
}
Die Zeichenfolge mit SVG in generierten HTML nicht erscheint aber es etwas Werke wenn ich einfachere SVG wie folgt verwende:
var newGrid = "data:image/svg+xml;utf8,<svg><circle></svg>"
Irgendeine Idee, wie man das repariert?
Vielen Dank!
Rosta
Versuchen Sonderzeichen zu kodieren. Um dies zu tun, können Sie 'window.encodeURIComponent' verwenden. – Kaiido
@Kaiido Vielen Dank für Ihre Antwort. Ich habe versucht, diese Funktion nur für die ganze Zeichenfolge und Sonderzeichen zu verwenden. Es scheint keine Wirkung zu haben. – Gotty
@Kaiido Es stellte sich heraus, Sie waren nach + + es gab fehlende ViewPort und Xlmns aus SVG-Header. Nochmals vielen Dank :) – Gotty