Ich habe eine Funktion, die zufälligen Text generiert und Reaktionskomponenten (aus Argumenten) an zufälligen Stellen einfügt und zurückgibt. Es akzeptiert Objekte mit Komponenten, Beispiel:

function func(components) {...}

func({first: <div>Hello</div>});

In der Funk mache ich das:

function func(components) {
    let randomStr = "123aweasdKhjhasj{first}asdjhasjkdh";
    randomStr = randomStr.replace("{first}", components.first);
    return randomStr;
}

Aber mein Ergebnis ist 123aweasdKhjhasj [Objekt Objekt] asdjhasjkdh, ich weiß, ich übergebe jsx, aber ich habe keine Ahnung, wie ich das entscheiden kann.

Ich kenne eines, ich muss jsx Objekt zurückgeben, aber ich weiß nicht, wie ich es generieren soll.

Von meinem Beispiel möchte ich es bekommen:

123aweasdKhjhasj<div>Hello</div>asdjhasjkdh

Und div, es ist kein String, es ist wirklich eine HTML-Komponente

0
kitsoRik 22 Feb. 2020 im 14:38

3 Antworten

Beste Antwort

Gibt ein JSX-Element anstelle einer Zeichenfolge zurück.

function func(components) {
  return (
    <>
      <p>123aweasdKhjhasj</p>
      {components.first}
      <p>asdjhasjkdh</p>
    </>
  )
}
1
Ahmad 22 Feb. 2020 im 11:46

Sie müssen das Objekt {first: <div>Hello</div>} als {first: '<div>Hello</div>'} schreiben weil Javascript HTML-Tags nicht als Datentyp erkennen kann

0
Prakash Reddy Potlapadu 22 Feb. 2020 im 12:09

Wenn du diesen bekommen willst

123aweasdKhjhasj<div>Hello</div>asdjhasjkdh

Sie können Folgendes tun

function func(components) {
    return `123aweasdKhjhasj${components.first}asdjhasjkdh`
}
1
asmaa 22 Feb. 2020 im 11:52