以下の処理を作成してます。
・1つめ目のセレクトボックスの値(tableSelected)を配列に格納
・上記の配列をaxios.getのパラメーターに渡す
・上記のパラメーターを持ってAPIにgetリクエストし、APIの結果として配列データを取得
その中でセレクトボックスの選択値(tableSelected)をAPI2のaxiosのパラメータとして配列で渡せず躓いています。
1つの選択値のパラメーターではうまく行ったのですが、配列での方法がうまく行きません。
配列の渡し方をご教授頂けると幸いです。よろしくお願いします。
現状は上のセレクトボックスの値を複数選択できているのですが、ご覧の通りAPI2にその値を渡せていません。
念のためpostmanで引数にtableName=clientA&tableName=clientBと配列で引数を渡してあげると理想の結果を返してくれているので、値が渡ってないと考えています。
1つ目のセレクトボックス選択時のtableSelectedの中身です。
<template> <div class="col-sm-3 col-form-label"> <h2>請選擇客戶名字</h2> <v-select v-model="tableSelected" v-on:change="fetchTags(tableSelected)" :options="tables" multiple> <option v-for="table in tables" :key='table.id'>{{ table }}</option> </v-select> <h2>請選擇標籤</h2> <select v-model="tagSelected" class="browser-default custom-select custom-select-lg mb-3"> <option v-for="tag in tags" :key='tag.id'>{{ tag }}</option> </select> <p>{{ tableSelected }}</p> <button type="button" class="btn btn-primary">確定</button> </div> </template> <script> import axios from 'axios' export default { data () { return { tables: '', tableSelected: [], tags: '', tagSelected: '' } }, created () { axios.get('API1_url').then(response => { this.tables = response.data }) }, methods: { fetchTags: function (tableSelected) { axios.get('API2_url', { params: { tableName: tableSelected } }).then(response => { this.tags = response.data }) } } } </script>
これだけだと値を渡せていないのか、API2_urlからのレスポンスが空なのかが判断できませんが、どこまで確認できていますでしょうか?
ありがとうございます。vue.jsに不慣れのため、問題の切り分けが甘く申し訳ありませんでした。
なんとかデバック機能などで探ってみます。
一応ではありますが、postmanで引数にtableName=clientA&tableName=clientBと渡してあげると理想の結果を返してくれているので、値が渡ってないと考えています。
とりあえず、API2_urlに引き渡しているtableSelectedや、戻りresponse.dataをconsole.logで出力させて、確認してみてもらえますか?
vue.jsのdevloperツールでtableSelectedの中身を確認いたしました。
上に写真を追加させて頂きました。
見た感じでは選択値が変数の中に入っているように思えます。
写真の通り、Vueのコンポーネント内には保持できているものと思っています。
前回のコメントは、1名回答しているかたの記載内容の通り、onchangeの引数とした場合に問題なく渡せているのかが気になったのでコメントしました。
なるほどですね!!
渡せてないですね・・・・
引き続き調査します!
ありがとうございます!
回答1件
あなたの回答
tips
プレビュー