169 похожих чатов

Привет! вот пробросил я контекст во вложенный компонент. А как

мне из этого вложенного компонента этот контекст изменять?

14 ответов

16 просмотров

Во-первых, ты тупо мутируешь объект. Создай стейт и меняй его. Во-вторых, в CompAB ты вызываешь useContext вне провайдера. Он будет работать только в дочерних компонентах.

как бы да- Автор вопроса
как бы да- Автор вопроса
arts
Да

но функция increment вне каких либо компонентов располагается, как и сам объект контекста . Как из неё до стейтов дотянуться?

как бы да- Автор вопроса
arts
А должен быть внутри

э, но сам контекст определяется не внутри компонентов, иначе как его эспортировать

как бы да
э, но сам контекст определяется не внутри компонен...

Сам контекст ты определяешь через createContext. А value передаешь в провайдер. Экспортировать значение не нужно.

как бы да- Автор вопроса

разве при создании контекста не нужно указывать его дефолтное значение? из документации картинка

как бы да
разве при создании контекста не нужно указывать ег...

Нужно. Это то, что будет возвращаться, если ты вызовешь useContext вне провайдера

как бы да
разве при создании контекста не нужно указывать ег...

Засунь в него какое-нибудь дефолтное значение, а в качестве incrrment пустую функцию, этого будет достаточно

Стейты — это и есть содержимое контекста. Все компоненты, находящиеся внутри провайдера, будут иметь доступ к контексту. И содержимое контекста должно определяться там, где ты монтируешь провайдер, а не в единственном объекте где-то сбоку.

как бы да- Автор вопроса
arts
Стейты — это и есть содержимое контекста. Все комп...

ну вот я определил промежуточный компонент CompR , чтобы его внутрь провайдера поместить и уже в нем useContext вызывать. Меняю внутри increment значение vc.a, но это ничего не меняет

как бы да- Автор вопроса

дефолтное значение нельзя не передавать, ругается TypeScript на этапе компиляции

Похожие вопросы

Обсуждают сегодня

а через ESC-код ?
Alexey Kulakov
29
30500 за редактор? )
Владимир
47
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
13
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
в JclConsole объявлено так: function CtrlHandler(CtrlType: DWORD): BOOL; stdcall; - где ваше объявление с stdcall? у вас на картинке нет stdcall
Karagy
8
Как передать управляющий символ в открытую через CreateProcess консоль? Собсна, есть процедура: procedure TRedirectThread.WriteData(Data: OEMString); var Written: Cardinal;...
Serjone
6
Ребят в СИ можно реализовать ООП?
Николай
33
program test; {$mode delphi} procedure proc(v: int32); overload; begin end; procedure proc(v: int64); overload; begin end; var x: uint64; begin proc(x); end. Уж не знаю...
notme
6
у вас два процесса. один посылает другому сигнал. у вас есть код обоих процессов? если всё не так - расскажите как оно на самом деле. а именно кто кому чего, есть-ли консоли,...
Karagy
6
Карта сайта