Mit ReactJS + Material-UI habe ich ein Array namens colors
und enthält Strings in verschiedenen Farben. Sagen Sie zum Beispiel das Array colors
hat 3 Farb-Strings: "weiß", "blau", "grün. Dann möchte ich jede Farbe String hat eine <MenuItem/>
innerhalb einer <DropDownMenu/>
(http://www.material-ui.com/#/components/dropdown-menu). Und sobald ein <MenuItem/>
ausgewählt ist, ich ' Ich mag es, diese bestimmte Farbe zu loggen, sagen wir "weiß": console.log ("weiß").ReactJS: Wie man Material-UIs <MenuItem/> innerhalb <DropDownMenu /> dynamisch darstellt?
Also habe ich .forEach verwendet noch die zeigt keine Zeichenfolgen und es ist leer. Was könnte ich sein Unrechttuns
Hier ist der Code:
constructor() {
super()
this.state = {
value: 1,
}
}
dropDownColorChange(event, index, value) {
this.setState({value: value})
//Not sure how to implement here dynamically based on array size. Would like to console.log the color string of the selected
}
render() {
var colors = ["white", "blue", "green"] //would be able to handle any array size
return (
<div>
<DropDownMenu
value={this.state.valueTwo}
onChange={this.dropDownColorChange}
>
{
<MenuItem value={1} primaryText="Select" />
colors.forEach(color => {
<MenuItem primaryText={color}/>
})
}
</DropDownMenu>
</div>
)
}
Danke
Sie müssen MenuItem die Eigenschaft 'key' hinzufügen, damit React jedes MenuItem protokollieren kann. – Kafo
Das ist richtig, das habe ich verpasst. Die Antwort wird aktualisiert. –