YMapContext

Класс YMapContext — создает контекст, который компоненты могут предоставлять или считывать.

Самый распространенный способ передачи информации из родительского компонента в дочерний - это передача через props. Но если дерево имеет сложную структуру компонентов или многим компонентам нужна одна и та же информация, передача реквизитов может стать громоздкой и неудобной. Контекст позволяет родительскому компоненту сделать некоторую информацию доступной для любого компонента в дереве под ним без явной передачи ее через props.

YMapContext не содержит никакой информации. Он определяет, какой контекст считывают или предоставляют другие компоненты. Поставщиком контекста является класс YMapContextProvider.

YMapContextProvider

YMapContextProvider — поставщик контекста для YMap, позволяющий вводить контекст и его значение.

Пример использования

Поставщик контекста для Map, позволяющий вводить контекст и его значение:

const mapContextProvider = new YMapContextProvider({context: SomeMapContext, value: {your: 'value'}});
map.addChild(mapContextProvider);

И определить контекст потребителя:

class SomeContextConsumer extends ymaps3.YMapEntity<{}> {
   constructor() {
       super({});
   }

   _onAttach() {
     const value = this._consumeContext(SomeMapContext);
     console.log(value); // {your: 'value'}
   }
}

При добавлении вложенных контейнеров в них будет доступен контекст:

mapContextProvider.addChild(new SomeContextConsumer());

Но самое главное, что контекст может быть передан на любом уровне вложенности:

<YMapContextProvider context={SomeMapContext} value={{your: 'value'}}>
    <YMapContainer>
        <YMapContainer>
            <SomeContextConsumer />
        <YMapContainer>
    </YMapContainer>
</YMapContextProvider>

Конструктор

new YMapContextProvider<T>(props, options?)

Параметры конструктора

Параметр

Тип

Описание

props

YMapContextProviderProps<T>

Значение входных props.

options?

ComplexOptions<YMap>

Опциональные параметры объекта.

Унаследованно от YMapGroupEntity.constructor.

new YMapContextProvider<T>(props, children?, options?)

Параметры конструктора

Параметр

Тип

props

YMapContextProviderProps<T>

children?

GenericEntity<unknown, {}, YMap>[]

options?

Omit<ComplexOptions<YMap>, "children">

Унаследованно от YMapGroupEntity.constructor.

Props

YMapContextProviderProps<T>: Object

Параметры

Параметр

Тип

Описание

context

YMapContext<T>

Контекст, который получит предоставленное значение.

value

T

Значение, которе должно быть указано в контексте.

Методы

addChild

addChild(child, index?): YMapContextProvider<T>

Параметры

Параметр

Тип

child

YMapEntity<unknown, {}>

index?

number

Возвращается

YMapContextProvider<T>

Унаследованно от

YMapGroupEntity.addChild

removeChild

removeChild(child): YMapContextProvider<T>

Параметры

Параметр

Тип

child

YMapEntity<unknown, {}>

Возвращается

YMapContextProvider<T>

Унаследованно от

YMapGroupEntity.removeChild

update

update(changedProps): void

Method for updating props of Entity.

Параметры

Параметр

Тип

Описание

changedProps

Partial<YMapContextProviderProps<T>>

Новые значения props.

Возвращается

void

Унаследованно от

YMapGroupEntity.update

Предыдущая
Следующая