вызов функции из значения const - PullRequest
1 голос
/ 04 августа 2020

У меня есть элемент const начального состояния, который выглядит так:

const INITIAL_STATE = {
  endPoint: { street: '', coordinates: [] }, //[13.3969, 52.5182]
  startingPoint: { street: '', coordinates: [] }, //[13.413215, 52.521918]
  favouritePoint: { street: '', coordinates: [] },
  favouriteLocations: {getFavouritePlaces()},
  // favouriteLocations: [
  //   {
  //     name: 'Zu Hause',
  //     street: 'Müllersweg',
  //     coordinates: [8.217462, 53.13975], //[8.258844, 53.119525],
  //   },
  //   {
  //     name: 'Büro',
  //     street: 'Philipp-Reis-Gang',
  //     coordinates: [8.258844, 53.119525], //[8.217462, 53.13975],
  //   },
  //   {
  //     name: 'KaffeeHaus',
  //     street: 'Cloppenburgerstr.',
  //     coordinates: [8.211, 53.113],
  //   },
  // ],
  addressesFoundList: [],
};

Вместо жестко заданного значения я пытаюсь вызвать функцию для favouriteLocations, которая вернет объект того же типа. Однако в настоящее время это не вызывает мою функцию.

Моя функция выглядит так:

const getFavouritePlaces = () => {
return ...
}

Позже я буду использовать это начальное состояние для моей настройки redux.

Ответы [ 3 ]

0 голосов
/ 04 августа 2020

Как уже упоминалось, есть синтаксическая ошибка.

Альтернатива 1 - Распространение функции, содержащей желаемый объект:

const INITIAL_STATE = {
  favouriteLocations: {...getFavouritePlaces()}
};

Альтернатива 2 - Запуск функции, которая вернет желаемый объект:

const INITIAL_STATE = {
  favouriteLocations: getFavouritePlaces()
};
0 голосов
/ 04 августа 2020

Вы должны объявить это так:

const getFavouritePlaces = () => {
       console.log('test');
    }
    
    const INITIAL_STATE = {
      favouriteLocations: getFavouritePlaces
    }

    INITIAL_STATE.favouriteLocations();

Это будет работать, даже если ваша функция получит такую ​​переменную, как:

const getFavouritePlaces = (x) => {
  console.log(x);
};

const INITIAL_STATE = {
   favouriteLocations: getFavouritePlaces
}

INITIAL_STATE.favouriteLocations('test');
0 голосов
/ 04 августа 2020

Я не думаю, что вам нужны скобки вокруг вызова функции.

Изменить favouriteLocations: {getFavouritePlaces()}, на favouriteLocations: getFavouritePlaces(),.

...