TypeScriptで、ストア情報を複数登録し、登録したストア情報を一覧で表示させて、
検索で抽出するコードを書きたいのですが、
登録はできたのですが、最初に入れた1件の情報以降、追加ができないのと、
検索しないと表示されない(一覧表示のように最初から表示させたい)ので、
・複数登録したい
・登録したものを一覧表示させたい
以上のコードの書き方がわかる方いたらご教授いただきたいです。
また、原因となるコードの部分がありましたら、ご指摘いただけると幸いです。
どうぞよろしくお願いいたします。
typeScript
1//dao.ts(登録情報を表示) 2export async function searchByFreeword(Data: string, nextToken?: string) { 3 return (await API.graphql( 4 graphqlOperation(listStores, { 5 filter: { 6 store_name: { eq: StoreData } 7 }, 8 9 limit: 10, 10 sort: { field: 'createdAt', direction: 'desc' }, 11 nextToken 12 }) 13 )) as GraphQLResult<ListStoresQuery> 14}
TypeScript
1 <!-- 登録情報の表示 --> 2 <div class="Storelist"> 3 <div 4 class="store-row" 5 v-for="Store in StoreList" 6 v-bind:key="Store.id" 7 > 8 <div>店名:{{ Store.store_name }}</div> 9 <div>ID:{{ Store.company_id }}</div> 10 <div>登録日:{{ Store.created_at }}</div> 11 <v-btn 12 style="color: black" 13 @click="createDummyInquiry(Store.id)" 14 color="primary" 15 >詳細</v-btn 16 > 17 </div>
これだけじゃわかりかねますが、もし、データをDBに登録しているのだとしたら、
追加登録できないのはユニーク制約に反してるからでは?
朝早くにご回答ありがとうございます。
登録を複数回行った後に、ブラウザでコンソールを確認したところ、
listBukkenStores: items: Array(1)
となっておりました。
これは、ユニーク制約がされている、と考えられるということになりますでしょうか…?
初心者で恐れ入ります。
いや、それだとidしか代入されていないのでは?それで、何を入れても1、1、1…となって、何度も上書きしているのではないかと思われます。
上書きというか、1個いれた後にもうそれ以外入れることができない状態なんです…。
graphqlOperation(listStores, {
filter: {
store_name: { eq: StoreData }
}
ここの部分の記述が、1個しか入れられない原因かと考えているのですが、あまり関係なさそうでしょうか。
直前のlistStoresがどんな値を示しているかデバッグしてみては?
デバッグはまだ勉強不足でよくわからないので、
とりあえず原因探ってみます。ありがとうございます。
あなたの回答
tips
プレビュー