Как изменить состояние массива в graphql?

#javascript #arrays #reactjs #graphql #amplify

Вопрос:

Я пытаюсь добавить массив в схему GraphQL. В настоящее время это выглядит так:

 type Play {  winRatio: [Float] }  

Цель коэффициента выигрыша — сохранить историю всех коэффициентов выигрыша. Например, после 3 игр массив winRatio должен выглядеть следующим образом:

 winRatio: [1, .5, .66]  

В настоящее время, когда я изменяю массив winRatio, история не сохраняется; состояние обновляется до последнего значения. Вот как это выглядит:

 await API.graphql({  query: updatePlay,  variables: {  input: {  winRatio: [winRatio, (await wins) / (await totalPlays)], // update the player's win ratio  },  }, })  

Однако, когда я запрашиваю данные winRatio в graphql, я получаю массив ТОЛЬКО с последним значением:

 winRatio:[.66]  

Я чувствую, что мне нужен оператор распространения, но я не уверен, почему мое текущее решение не решает мою проблему.

Ответ №1:

Да, вы правы в том, что вам нужен оператор распространения.

 winRatio: [...winRatio, (await wins) / (await totalPlays)]