Как мне получить доступ к значению объекта, находящемуся внутри объекта? - PullRequest
0 голосов
/ 01 августа 2020

Я получаю

Uncaught TypeError: Cannot read property 'page' of undefined

из console.log (props.searchedLocation.totalPages.page).

Приведенный ниже объект является консольным журналом 'props.searchedLocation'.

{
  next: { page: 3, limit: 10 },
  previous: { page: 1, limit: 10 },
  totalPages: { page: 32 },
  results: [
    {
    },
   ]
}

Он возвращает {page: 32}, когда я делаю console.log ('props.searchedLocation.totalPages'). Однако мне нужен номер страницы, чтобы передать его моему компоненту разбивки на страницы, и я пробовал использовать '?' для поиска значения страницы, но это не сработало.

Как я могу взять значение объекта внутри основного объекта в React или JS?

  useEffect(() => {
    if (!props.searchedLocation) {
      setLastPage(100);
    } else {
      setLastPage(props.searchedLocation.totalPages.page);
    }
  }, [props.searchedLocation]);

это возвращает

Uncaught TypeError: Cannot read property 'page' of undefined

Ответы [ 4 ]

1 голос
/ 01 августа 2020

Вы не получаете доступ к searchedLocation должным образом. Консоль показывает, что totalpages имеет внутри объект page.

Самый простой и надежный способ - использовать searchedLocation.totalPages.page

const searchedLocation = {
  next: {
    page: 3,
    limit: 10
  },
  previous: {
    page: 1,
    limit: 10
  },
  totalPages: {
    page: 32
  },
  results: [{}, ]
}

console.log(searchedLocation.totalPages.page); //32
1 голос
/ 01 августа 2020

Я думаю, вы, возможно, забыли добавить свойство страницы, используя точечную нотацию.

Оно должно выглядеть следующим образом:

props.searchedLocation.totalPages.page // returns page number as 32

в скобках:

props.searchedLocation.totalPages['page'] // returns page number as 32

где как написано:

props.searchedLocation.totalPages // returns totalPage object as {page: 32}
1 голос
/ 01 августа 2020

Думаю, вас следует использовать как динамическое c свойство

вот так

console.log(props.searchedLocation.totalPages['page'])
1 голос
/ 01 августа 2020

Вам необходим доступ к свойству страницы

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