Listが表示されるページがあります。
追加するボタンを押した時にデータに登録されるのですが登録された後にItemListに最新のデータを表示したいです。
今、現在のコードは追加をするボタンを押した後にデータに登録することができるのですが画面を自分でリロードしないと追加したものがListに表示されません。
データ追加した後にそのままLIstに表示されるようにするにはどうしたらいいでしょうか?
//ItemList.vue <pull-to-refresh v-on:onRefresh="refreshItems"> <list v-on:refreshItems="refreshItems" /> </pull-to-refresh> <post-item-success-modal v-if="isShowModalPostItemSuccess()" @click-close="PostSuccessModal()" :code="getPostedItemCode()" /> refreshItems() { PostStore.refreshItems(this.$axios) } addItems(items: Item[]) { items.forEach( item => { this.itemsEntities = [...this.itemsEntities, new ItemEntity(item)] }) onComplete() { this.hasMorePage = false } async refreshItems(axios: NuxtAxiosInstance) { const res = await ItemDataSource.getItems(axios, this.title, this.count, this.text) this.addItems(res.items) if (res.items == null || res.items.length < 1) { this.onComplete() } } }
//list.vue <button @click="onClickButton()" type="submit" name="button" class="create_form_button" > 追加する </button> onClickButton() { const postTitle: string = this.title const postText: number = this.text this.postItem( postTitle, postText, ) } postItem( title: string, body: string, ) { const promise = ItemDataSource.postItem( this.$axios, authStore.userId, title, body, ) promise .then((res) => { this.onPostSuccess(res.ogp_url, res.code, title) }) .catch((err) => { this.onPostFail(err) }) } onPostSuccess(ogpUrl: string, itemCode: string, title: string) { const item = new Item() item.title = title item.code = itemCode item.ogp_url = ogpUrl Store.showModalPostSuccess(item) this.$router.push('/post') }
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/05/07 15:02
2020/05/07 15:04
2020/05/07 15:11
2020/05/07 15:18
2020/05/07 15:38
2020/05/07 15:43