2016-08-02 1 views
0

Ich bin auf der Suche nach einem Einblick, wie man benutzerdefinierte jsx übergeben kann in das Label der Checkbox-Komponente.Wie erstelle ich Links (oder übergebe irgendein anderes html/jsx) in das Label der Material-UI <Checkbox ... label = "string" /> Komponente

<Checkbox 
    label="I accept the Terms of Use & Privacy Policy" 
/> 

Idealerweise würde machen, was als das Etikett ist, wo die Elemente in den Klammern sind Links „Ich habe die [AGB] & [Datenschutz] akzeptieren“.

Vielen Dank im Voraus für jede Hilfe!

Antwort

3

Sie in anderen jsx Knoten in die Eigenschaft label passieren kann. In diesem Beispiel verwende ich den React Router-Link, aber Sie könnten natürlich ein Ankerelement verwenden.

<Checkbox 
    label={ 
    <div> 
     <span>I accept the </span> 
     <Link to={'/terms'}>terms of use</Link> 
     <span> and </span> 
     <Link to={'/privacy'}>privacy policy</Link> 
    </div> 
    } 
/> 
+0

Jeroen, Das war genau die Lösung, nach der ich gesucht habe. Beide Methoden, die Sie vorgeschlagen haben, haben funktioniert. Die Dokumentation auf der Website von Material-UI ist ziemlich spärlich in Bezug auf verschiedene Komponenten, so dass du mir so viel Zeit und Mühe ersparst hast! Danke für die Antwort! –

+1

@michaelmuxica außer die Links sind nicht anklickbar, oder? – Ludo

+0

Sie sind/sollten anklickbar sein. Hast du das versucht und es hat nicht funktioniert? –

0
<html> 
<head> 
</head> 
<body> 
<form method="post" action="demo_form.php"> 
I accept the Terms of Use & Privacy Policy 
<input type="Checkbox" name="terms"> 
</form> 
</body> 
</html> 

demo_form.php

<?php 
echo 'Hello ' . htmlspecialchars($_POST["terms"]) . '!'; 
?> 
+0

Jeffrey wurde diese Frage speziell auf die Verwendung der UI-Material-React.js Basis bezogen. Nicht PHP. Danke, dass du versucht hast zu helfen. –

0

Sie können HTML in der Eigenschaft label verwenden. Aber Sie werden ein Problem haben: Die Komponente wird von einer transparenten Eingabe "abgedeckt", die jeden Klick verarbeitet. So werden Links oder onClicks nicht funktionieren. Bevor die Bibliothek Entwickler das Problem beheben, können Sie verwenden:

<Checkbox id={uniqueId} 
     labelStyle={{ zIndex: 3 }} 
     label={(
       <label htmlFor={uniqueId}> 
          blah blah 
          <span onClick={this.myAction}>yeah</span> 
          <a>...</a> 
       </label> 
    )}/> 

Einzelheiten hier =>https://github.com/callemall/material-ui/issues/5364