Ich versuche, Versprechen zu verwenden, um eine Reaktionskomponente zu füllen. Ich habe debugged und die Anweisung this.setState({items: items})
innerhalb componentWillMount()
wird nach render()
aufgerufen, so dass immer das Elementarray in der Renderfunktion leer ist. Auch ich habe versucht, componentDidMount()
zu verwenden.setState mit Versprechen
Welches wäre der richtige Ansatz?
interface Props extends React.Props<ItemsListComponent> {
isAddButtonClicked : boolean;
newItem : string;
}
interface State {
items : Array<ItemEntity>;
}
export class ItemsListComponent extends React.Component<Props, State> {
constructor(props: Props) {
super(props);
this.state = {items: []};
}
public componentWillMount() {
itemAPI.getAllItems().then((items) => {
this.setState({items: items})
});
}
render() {
return(
<div className="container">
<div className="row">
<ul className="list-group">
{this.state.items.map((item : ItemEntity) =>
// Each child in an array or iterator should have a unique "key" prop. React doc.
<li className="list-group-item" key={item.id}>{item.task}</li>
)}
</ul>
</div>
</div>
);
}
}