Vue를 사용하여 API를 사용한 일괄 업데이트
여러 개의 레코드를 동시에 업데이트하려고 하는데, 이 레코드는 내 양식 데이터와 함께 전송되는 ID를 필요로 한다.나는 Vue.js를 사용하고 있고 내 Vuex 스토어의 데이터를 공리를 통해 보내고 있다.
내 vue 구성 요소에서 다음과 같이 데이터가 전송됨:
methods: {
...mapActions(['updateCheckedEngagements']),
updateChecked() {
this.updateCheckedEngagements({
engagements: this.checkedEngagements,
assigned_to: this.engagement.assigned_to,
status: this.engagement.status
})
},
}
그this.checkedEngagements
내가 업데이트 할 아이디의 배열을 수집하는 거야하지만, 실제로 데이터를 보내기 위해 vuex를 사용하고 있기 때문에, 나는 다음과 같은 일을 하고 있고, 전에는 내가 해야 할 일이 아니었기 때문에, 나는 이것이 올바른 방법인지 분명히 하려고 노력하고 있다.여기 내 vuex 스토어에 있는 방법이 있다.
updateCheckedEngagements(context, engagement, checkedEngagements) {
axios.patch('/engagementsarray', {
engagements: checkedEngagements,
assigned_to: engagement.assigned_to,
status: engagement.status,
})
.then(response => {
context.commit('updateCheckedEngagements', response.data)
})
.catch(error => {
console.log(error.response.data)
})
},
이제 문제는 바로 여기서 세 번째 매개 변수를 전달하는 것이다.
updateCheckedEngagements(context, engagement, checkedEngagements)
나는 그것이 실제로 ID의 배열을 보내는 것인지 확신할 수 없다.신분증은 내가 작업할 때 양식으로부터 수집되고 있다는 것을 나는 알고 있다.console.log(this.checkedEngagements)
하지만 vuex로 보낼때 뭔가 빠진것같은 느낌이 들어...어떤 도움이라도 대단히 고맙게 생각한다...
그래서 나는 이 해결책에 도달했다.
...mapActions(['updateCheckedEngagements']),
updateChecked() {
this.updateCheckedEngagements({
engagements: this.checkedEngagements.engagements,
assigned_to: this.checkedEngagements.assigned_to,
status: this.checkedEngagements.status
})
},
내 가게는 이런 식이다.
updateCheckedEngagements(context, checkedEnagements) {
axios.patch('/engagementsarray', {
engagements: checkedEnagements.engagements,
assigned_to: checkedEnagements.assigned_to,
status: checkedEnagements.status
})
.then(response => {
console.log(response)
context.commit('updateCheckedEngagements', response.data)
})
.catch(error => {
console.log(error.response.data)
})
},
ID의 배열을 수집하고 데이터를 전송하는 데 동일한 개체를 사용하는 데 문제가 발생했었습니다.이것은 내가 내 이름을 충분히 명시하지 않았기 때문이다.내가 둥지를 틀면checkedEngagements:[]
내 안에 배열하다.engagement
그것이 언급하는 것을 반대하다.v-for
나는 그 물체 대신 루프를 반복하고 있었다.내가 무슨 말을 하는지 보기 위해 나는 그 글을 올릴 것이다.v-for
고리를 틀다
<tbody>
<tr v-for="(engagement, index) in engagementFilter" :key="index">
<th scope="row"><input type="checkbox" :value="engagement.id" v-model="checkedEngagements.engagements"></th>
<th>{{ engagement.client.last_name}}, {{ engagement.client.first_name}} & {{ engagement.client.spouse_first_name}}</th>
<td>{{ engagement.status }}</td>
<td>{{ engagement.assigned_to }}</td>
<td>{{ engagement.return_type }}</td>
<td>{{ engagement.year }}</td>
</tr>
</tbody>
그래서 왜냐하면v-for
사용중engagement
나는 또한 사용할 수 없었다.engagement
나의v-model
. 사용하는 대신v-model="enagagement.checkedEngagements"
나는 사용했다.v-model="checkedEngagements.engagements"
참조URL: https://stackoverflow.com/questions/52954704/batch-update-with-api-using-vue
'IT이야기' 카테고리의 다른 글
v-for 및 v-model을 사용한 vuex 계산 속성이 포함된 Vue js (0) | 2022.04.23 |
---|---|
V-bind 스토어 상태 변경 시 클래스를 업데이트하지 않음 (0) | 2022.04.23 |
복잡한 선언문을 읽기 쉬운 규칙? (0) | 2022.04.23 |
C에서 C++ 함수를 호출하는 방법은? (0) | 2022.04.23 |
vue 계산된 속성을 한 번만 실행하는 방법 (0) | 2022.04.23 |