Можно ли использовать что-то подобное axios.get(route()).then((response)) в Inertia?

Как правильно получить и обработать данные для Inertia, аналогично тому, как я делаю с помощью axios в следующем коде?

axios.get(route('form.getCities', {countryId: this.selectedCountry.id}))
                    .then((response) => {
                        this.cityOptions = response.data;
                        this.citySelectDisabled = false;
                    })

Пробовал использовать следующий код, но он не работает:

Inertia.get(route('form.getCities', { countryId: this.selectedCountry.id })).then(response => {
                    this.cityOptions = response.data.cities;
                    this.citySelectDisabled = false;
                });
  • 7 ноября 2023 г. 8:59
Ответы на вопрос 1
В Inertia нет нативного метода `get`, который работает аналогично `axios.get`. Однако, вы все равно можете использовать Axios вместе с Inertia в своем проекте.

Вы можете сделать это, добавив Axios в свою установку Vue и использовать его для выполнения запросов, как вы это делаете сейчас с помощью `axios.get`. Вот пример, как это можно сделать:

1. Установите Axios через npm или yarn:
```
npm install axios
```
или
```
yarn add axios
```

2. В файле `app.js` вашего проекта добавьте следующие строки:
```javascript
import Axios from 'axios';
import { InertiaApp } from '@inertiajs/inertia-vue';

window.axios = Axios;
window.axios.defaults.headers.common['X-Requested-With'] = 'XMLHttpRequest';

Vue.use(InertiaApp);

const app = document.getElementById('app');

new Vue({
  render: h => h(InertiaApp, {
    props: {
      initialPage: JSON.parse(app.dataset.page),
      resolveComponent: name => import(`./Pages/${name}`).then(module => module.default),
    },
  }),
}).$mount(app);
```

3. Теперь вы можете использовать `axios.get` для выполнения запросов в Inertia:
```javascript
axios.get(route('form.getCities', { countryId: this.selectedCountry.id }))
  .then((response) => {
    this.cityOptions = response.data;
    this.citySelectDisabled = false;
  });
```

Обратите внимание, что вам также потребуется настроить свой сервер для работы с Inertia, чтобы корректно обрабатывать такие запросы.
Похожие вопросы