Ich versuche zu schreiben, um meine eigene benutzerdefinierte Komponente zu erstellen, aber es funktioniert nicht, wie ich es wünsche. Die Interaktion scheint in Ordnung zu sein, aber es wird nur das letzte Element der Arrays gerendert.Benutzerdefinierte Komponente mit Karte fehlgeschlagen
export default class MyComponent extends Component {
constructor() {
super()
this.state = {
openItems: false,
selectedItem: 'Please select'
}
}
render() {
const { items, className } = this.props
const { openItems, selectedItem } = this.state
return (
<div className={classnames('myComponent', className)}>
<div tabIndex="1"
onBlur={() => this.setState({ openItems: false })}
onFocus={() => this.setState({ openItems: true })}>
{selectedItem}
<div className={classnames({'show': openItems === true, 'hide': openItems === false})}>
{items.map((obj, i) => {
return(
<li onClick={() => this.setState({ selectedItem: obj.name, openItems: false })}
key={i}>
{obj.name}
</li>
)
})}
</div>
</div>
</div>
)
}
}
und irgendwo habe ich die Komponente wie diese
<MyComponent items={[{
name: 'abc',
name: 'def',
name: 123
}]} />
ich keine Ahnung, was der Fehler ist.
versuchen, ein Array von Objekt zu übergeben: [{name: ‚abc‘}, { name: 'def'}, {Name: 123}] Sie haben jetzt nur ein Objekt im Array. – AppleJam
hey! Möglicherweise liegt ein Fehler vor, wenn Sie den Fehler in dieser Frage erwähnen. –