私は、反応コンポーネントを埋めるために約束を使用しようとしています。私はデバッグを行い、内のcomponentWillMount()
がrender()
の後に呼び出されるので、常にレンダリング関数のitems配列は空です。また、私はcomponentDidMount()
を使用しようとしました。約定を使用してsetState
これは正しいアプローチですか?
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>
);
}
}