leonidshishkin
@leonidshishkin
Тянусь к знаниям)

Могу ли я вызывать action из балуна react-yandex-map?

Компонент Balloon рендерится с помощью renderToStaticMarkup, поэтому в баллуне не возможно вызывать какие-либо экшены. Есть ли способ как-то по другому отображать компоненты в балуне react-yandex-map, чтобы можно было отображать не статический html, а нормальный react компонент?
const getPointData = (
  store: IEshopStore,
  cart,
  remnants,
  SetOpenedStore,
  openedStores,
  storeClickAction
): IPlacemarkProperties => {
  return {
    balloonContent: renderToStaticMarkup(
      Baloon({
        store,
        cart,
        remnants,
        SetOpenedStore,
        openedStores,
        storeClickAction,
      })
    ),
    clusterCaption: `
        <div>
          <p>${store.name} - ${store.param.street || ''}</p>
        </div>
      `,
    hintContent: store.param.street,

  };
};

export const generatePlaceMarks = (
  stores: IEshopStore[],
  cart,
  remnants,
  SetOpenedStore,
  openedStores,
  storeClickAction
): IPlacemark[] => {
  return stores.map(store => {
    const { storeCategoryType, isJevelStore } = store.param;
    const name = getPlacemarkIconName(storeCategoryType, isJevelStore);
    return {
      type: 'Feature',
      id: +store.IStoreId,
      storeType: storeCategoryType,
      geometry: store.param.location,
      properties: getPointData(
        store,
        cart,
        remnants,
        SetOpenedStore,
        openedStores,
        storeClickAction
      ),
      options: {
        iconLayout: 'default#image',
        iconImageHref: `${path}/static/img/placemark-${name}.svg`,
        iconImageSize: isJevelStore ? [42, 42] : [21, 42],
        // iconImageOffset: [-15, -44],
      },

    };
  });
};
  • Вопрос задан
  • 73 просмотра
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы