Как отправить данные в api, имеющий несколько вложенных массивов в React

Мне нужно отправить измененные данные в api, который имеет формат json, как показано ниже:

{
"Customer": {
    "name": "ABC",
    "email": [email protected],
    "password": ""
},
"access": true,
"time": 2000
}

При сохранении я хочу установить соответствующее состояние для полей api.

save=()=>{
    let newCustomer = {
        access:this.state.access,
        time:this.state.time,
        name:      //How can i set the state values for name,email and 
                     password which is in nested form?
        email:
        password:

    }
     return axios.put('api',newCustomer)
     .then(response => {

    })
}

В чем проблема?

Hemadri Dasari 01.10.2018 12:14
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Навигация по приложениям React: Исчерпывающее руководство по React Router
Навигация по приложениям React: Исчерпывающее руководство по React Router
React Router стала незаменимой библиотекой для создания одностраничных приложений с навигацией в React. В этой статье блога мы подробно рассмотрим...
Массив зависимостей в React
Массив зависимостей в React
Все о массиве Dependency и его связи с useEffect.
0
1
379
2

Ответы 2

Вы можете напрямую объявить это как ваш формат json.

let newCustomer = {
  access:this.state.access,
  time:this.state.time,
  Customer: {
    name: ..., // state name from your nested form
    email: ...,  // state email from your nested form
    password: ..., // state password from your nested form
  },
}

Вы можете отметить это как ответ, чтобы помочь другим решить ту же проблему. : D @Pooja

Bukhari 01.10.2018 12:26

Я пометил его как полезный, так как моя репутация не выше 15, он не будет отображаться публично, но голоса будут считаться @Bukhari

Prox4 01.10.2018 12:27
        save=(Customer)=>{
            let newCustomer = {
                ...Customer,
                access: this.state.access,
                time: this.state.time,
            }
            return axios.put('api', newCustomer)
            .then(response => {
                console.info(response);
            })
        }

Тогда newCustomer будет похож на Customer, но доступ и время могут отличаться. В бэкэнде вы не можете получить доступ к имени клиента и электронной почте, как к массиву

Другие вопросы по теме