нужно передать массив с объектом внутри него - PullRequest
0 голосов
/ 26 марта 2019
  • В моем почтовом запросе мне нужно передать массив с объектом внутри него.
  • , когда я пытался добавить новые свойства внутри объекта, его добавление.
  • , но когда япопытался добавить, когда объект присутствует внутри массива, который он не добавляет.У меня есть спортивные значения в виде массива const sportsValues = [{ ...values }];
  • Я пытаюсь построить что-то вроде этого, чтобы я мог передать в API [ { "playerName": 3, "playerHeight": 1 } ]
  • Можете ли вы сказать мне, как это исправить.
  • предоставив мой фрагмент кода ниже.
export function sports(values) {
    const sportsValues = [{ ...values }];
    sportsValues.push(playerName:'3');
    console.log("sportsValues--->", sportsValues);

    // sportsValues.playerName = 3//'';
    // sportsValues.playerHeight = 1//'';
    console.log("after addition sportsValues--->", sportsValues);
    console.log("after deletion sportsValues--->", sportsValues);

    return dispatch => {
        axios
            .post(`${url}/sport`, sportsValues)
            .then(() => {
                return;
            })
            .catch(error => {
                alert(`Error\n${error}`);
            });
    };
}

Ответы [ 3 ]

0 голосов
/ 26 марта 2019

Я не совсем понимаю, что вы пытаетесь сделать, но вот несколько советов:

Если вы пытаетесь обновить объект, который находится внутри массива, вы сначала должны выбрать объект внутри массива, а затем обновить его атрибут:

sportsValues[0].playerName = 3

хотя, я рекомендую сначала правильно построить объект, а затем передать его в массив, по моему мнению, это немного легче понять:

const sportsValues = [];
const firstValue = { ...values };
firstValue.playerName = '3';
sportsValues.push(firstValue);

или

const firstValue = { ...values };
firstValue.playerName = '3';
const sportsValues = [firstValue];

или

const sportsValues = [{
  ...values,
  playername: '3',
}];

если вы пытаетесь добавить новый объект в массив, вы можете сделать это:

const sportsValues = [{ ...values }];
sportsValues.push({ playerName: '3' });
etc...

Array.push добавляет новый элемент в массив, поэтому в вашем коде у вас будет 2 элемента, потому что вы назначаете 1 элемент в начале, а затем добавляете новый элемент:

const ar = [];
// []
ar.push('item');
// ['item']
ar.push({ text: 'item 2' });
// ['item', { text: 'item 2' }]

и т.д ...

0 голосов
/ 27 марта 2019
export function sports(values) {
  const sportsValues = [{ ...values }];
  sportsValues.push(playerName:'3');
  let playerName='3' 
  sportsValues.playerName= playerName; // you can bind in this way
  console.log("sportsValues--->", sportsValues);

  return dispatch => {
    axios
        .post(`${url}/sport`, sportsValues)
        .then(() => {
            return;
        })
        .catch(error => {
            alert(`Error\n${error}`);
        });
  };
}
0 голосов
/ 26 марта 2019

Поскольку sportsValues - это массив объектов, вы можете вставить в него новый объект.Проверьте код ниже.

const sportsValues = [];
sportsValues.push({ 
  playerName:'3',
  playerHeight: 1,
});

console.log(sportsValues);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...