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?)
Параметры конструктора
|
Параметр |
Тип |
Описание |
|
|
Значение входных |
|
|
|
Опциональные параметры объекта. |
Унаследованно от YMapGroupEntity.constructor.
new YMapContextProvider<T>(props, children?, options?)
Параметры конструктора
|
Параметр |
Тип |
|
|
|
|
|
|
|
|
|
Унаследованно от YMapGroupEntity.constructor.
Props
YMapContextProviderProps<T>: Object
Параметры
|
Параметр |
Тип |
Описание |
|
|
|
Контекст, который получит предоставленное значение. |
|
|
|
Значение, которе должно быть указано в контексте. |
Методы
addChild
addChild(child, index?): YMapContextProvider<T>
Параметры
|
Параметр |
Тип |
|
|
|
|
|
|
Возвращается
Унаследованно от
removeChild
removeChild(child): YMapContextProvider<T>
Параметры
|
Параметр |
Тип |
|
|
|
Возвращается
Унаследованно от
update
update(changedProps): void
Method for updating props of Entity.
Параметры
|
Параметр |
Тип |
Описание |
|
|
Новые значения |
Возвращается
void