Не удается получить доступ к объекту из lodash: Ошибка не может получить доступ к элементу объектов - PullRequest
0 голосов
/ 17 января 2019
export default {
  configuration:
  {
    site: {
      control:[
        api: {
          'list': '/api/v1/config/sites',
          'post': '/api/v1/config/sites/',
          'patch': '/api/v1/config/sites/',
          'delete': '/api/v1/config/sites/'
        }
      ],
    },
}

Я пытаюсь получить к нему доступ _.get(configuration, ['site','control','api','list'])

Пожалуйста, помогите мне, если я что-то не так.

Ответы [ 2 ]

0 голосов
/ 17 января 2019

Во-первых, ваша configuration структура неверна, именно в control:[api: {...}] массив не поддерживает структуру ключ / значение, как буквальный объект, поэтому вы должны заключить этот элемент в {}, как control:[{api: {...}}], и доступ к нему, как:

   _.get(configuration, ['site', 'control', '0', 'api', 'list'])

или преобразуйте ваше значение control в объект типа: control:{api: {...}}

полный пример, заключив ключ api в {}

let configuration = {
  site: {
    control: [{
      api: {
        'list': '/api/v1/config/sites',
        'post': '/api/v1/config/sites/',
        'patch': '/api/v1/config/sites/',
        'delete': '/api/v1/config/sites/'
      }
    }],
  }
}
var dumb = _.get(configuration, ['site','control','0','api','list'])

document.getElementById("key").innerHTML = dumb
console.log(_.get(configuration, ['site', 'control', '0', 'api', 'list']))
<script src="https://cdn.jsdelivr.net/npm/lodash@4.17.11/lodash.min.js"></script>
<p id="key"></p>
0 голосов
/ 17 января 2019

control - это массив, поэтому вы не можете получить доступ к control.api без предварительного указания, какой индекс в массиве вы хотите. Скорее нужно сделать:

_.get(configuration, ['site','control', '0', 'api','list'])
...