Как сделать Vuex Getter из данных из Google Api Docs? - PullRequest
0 голосов
/ 31 марта 2019

Я пытаюсь сделать геттер в магазине Vuex с плоскими данными из Google DOSC API.Все, что мне нужно, это взять содержимое textRun и сохранить его в массиве (потому что сообщений будет мало).Теперь я жестко закодировал этот ответ в состоянии вроде:

 state: {
    googleResponse: [
      {
        "body": {
          "content": [
            {
              "endIndex": 75,
              "paragraph": {
                "elements": [
                  {
                    "endIndex": 75,
                    "startIndex": 1,
                    "textRun": {
                      "content": "This is an ordinary paragraph. It is the first paragraph of the document",
                      "textStyle": {}
                    }
                  }
                ],
                "paragraphStyle": {
                  "direction": "LEFT_TO_RIGHT",
                  "namedStyleType": "NORMAL_TEXT"
                }
              },
              "startIndex": 1
            },
            {
              "endIndex": 102,
              "paragraph": {
                "elements": [
                  {
                    "endIndex": 102,
                    "startIndex": 75,
                    "textRun": {
                      "content": "Here's a level one heading",
                      "textStyle": {}
                    }
                  }
                ],
                "paragraphStyle": {
                  "direction": "LEFT_TO_RIGHT",
                  "headingId": "h.o1fkftgl5zwf",
                  "namedStyleType": "HEADING_1"
                }
              },
              "startIndex": 75
            },
          ]
        }
      }
    ],
} 

, и после этого я сделал геттер message и использовал map из lodash:

message: (state) => {
  let message = '';
  map(state.googleResponse, (element) => ({
    content: map(element.body.content, (content) => {
      map(content.paragraph.elements, (obj) => {
        message += get(obj, 'textRun', '')
      })
    })
  }))
}

Но когда япроверка message в vuex говорит, что он не определен ... Я хочу иметь массив с объектами textRun.Где может быть проблема?

Ответы [ 2 ]

2 голосов
/ 31 марта 2019

Мне интересно, можете ли вы таким образом сохранить сообщение в массиве?Вы можете написать так, как вы можете

   let messageArray = state.googleResponse.map(
        item => item.body.content.map(
            itemCotent => itemCotent.paragraph.elements.map(
                itemElements => itemElements.textRun.content)))
1 голос
/ 31 марта 2019

Вам необходимо вернуть переменную message в вашем геттере.

...