• Из-за обновления GTA 5 (был добавлен новый патч) может временно не работать вход в RAGE Multiplayer.

    ERROR: Your game version is not supported by RAGE Multiplayer.

    Данная ошибка говорит о том, что GTA V обновилась до новой версии (GTA Online тоже). Вам необходимо обновить саму игру в главном меню вашего приложения (Steam / Epic Games / Rockstar Games).
    Если после этого RAGE:MP все равно не работает - вам нужно дождаться выхода патча для самого мультиплеера (обычно это занимает от нескольких часов до нескольких дней).

    Новости и апдейты Rockstar Games - https://www.rockstargames.com/ru/newswire/
    Статус всех служб для Rockstar Games Launcher и поддерживаемых игр: https://support.rockstargames.com/ru/servicestatus


    Grand Theft Auto 5 (+ GTA Online) последний раз были обновлены:

Вопрос Как правильно передать данные из клиента на cef react js?

Gerych

Начинающий специалист
Автор темы
24 Ноя 2020
79
9
56
Всем привет, столкнулся с проблемой передачи данных на react cef.
Изначально пробивал через browser.execute но функция, в которую передаю переменную, не находилась.
Полез в интернет за ответом, нашел только это: https://rage.mp/forums/topic/2571-guide-creating-ui-with-react/ - там ничего полезного не нашел.
Если кто-то может дать совет или еще как-то помочь, буду рад)
 

Inoi

/dev/null
VIP
15 Окт 2020
2,320
1,382
208
34
функция, в которую передаю переменную, не находилась.
чево
покажи

я не верстальщик, но что я, что ребята у меня - подключали довольно дохуя интерфейсов, что нам собирали - и ну, реакт отлично работает с execute, точно так же как вуе
в плане взаимодействия клиентка -> цеф там вообще не ощущается разницы
никаких проблем нет вызывать функции и передавать данные
1675955732110.png


может нужно не забыть в реакт-приложении подмаунтить функции, к которым ты обращаешься извне?
1675955669762.png
 

aspidemon

Активный участник
26 Сен 2022
116
42
40
чево
покажи

я не верстальщик, но что я, что ребята у меня - подключали довольно дохуя интерфейсов, что нам собирали - и ну, реакт отлично работает с execute, точно так же как вуе
в плане взаимодействия клиентка -> цеф там вообще не ощущается разницы
никаких проблем нет вызывать функции и передавать данные
Посмотреть вложение 6334

может нужно не забыть в реакт-приложении подмаунтить функции, к которым ты обращаешься извне?
Посмотреть вложение 6333
вместо window можно использовать global, чтобы не засовывать в объект окна свои данные (возможно могут быть баги из-за этого), просто делаешь global.[name] и все
 

mippoosedev

Гуру
2 Мар 2021
294
139
100
Не используйте execute, есть евенты, их и используйте. Прекратите кринжевать!!!!

чево
покажи

я не верстальщик, но что я, что ребята у меня - подключали довольно дохуя интерфейсов, что нам собирали - и ну, реакт отлично работает с execute, точно так же как вуе
в плане взаимодействия клиентка -> цеф там вообще не ощущается разницы
никаких проблем нет вызывать функции и передавать данные
Посмотреть вложение 6334

может нужно не забыть в реакт-приложении подмаунтить функции, к которым ты обращаешься извне?
Посмотреть вложение 6333
Ну а это вообще кринж кншн. Ещё и под всё разные браузеры....
 
  • Like
Реакции: dooj

vpn

Начинающий специалист
29 Май 2022
129
64
65
Не используйте execute, есть евенты, их и используйте. Прекратите кринжевать!!!!


Ну а это вообще кринж кншн. Ещё и под всё разные браузеры....
Чем тебе не нравится функция execute?
Если объективно подумать, то ивенты они итак из под капота используют Execute.

Только к ивентам еще и подключается другая часть Rage API которая обрабатывает все твои запросы локально.
Это значит, то-что ты как минимум задействуешь больше функций чем Default execute.
Тем самым, при частых вызовах browser.call, ты нагружаешь систему в некоторое кол-во раз сильнее, тем самым теряешь некоторую часть оптимизации. (Например Render или маленький интервал спидометра для HUD ( Один из самых распространенных вариантов ) ).

Для автоматизации execute можно перейти на EcmaScript, импортировать переменную(Функция), где ты указываешь меню и аргументы. Дальше все за тебя сделает твой код.
Так-как мы не знаем каким образом устроено RageAPI, спорить об этом можно бесконечно.

Ну а миллион браузеров, да, тема забавная.
 
  • Like
Реакции: Inoi

mippoosedev

Гуру
2 Мар 2021
294
139
100
Чем тебе не нравится функция execute?
Если объективно подумать, то ивенты они итак из под капота используют Execute.

Только к ивентам еще и подключается другая часть Rage API которая обрабатывает все твои запросы локально.
Это значит, то-что ты как минимум задействуешь больше функций чем Default execute.
Тем самым, при частых вызовах browser.call, ты нагружаешь систему в некоторое кол-во раз сильнее, тем самым теряешь некоторую часть оптимизации. (Например Render или маленький интервал спидометра для HUD ( Один из самых распространенных вариантов ) ).

Для автоматизации execute можно перейти на EcmaScript, импортировать переменную(Функция), где ты указываешь меню и аргументы. Дальше все за тебя сделает твой код.
Так-как мы не знаем каким образом устроено RageAPI, спорить об этом можно бесконечно.

Ну а миллион браузеров, да, тема забавная.
1) Поддерживать код на экзекьютах - залупа. Один неправильный символ - всё улетает далеко и надолго
2) Евенты вещь удобная, модная, современное
3) Париться о такой мелочи, как разница во времени между экзекьютом и браузер коллом - очень и очень глупо) Это настолько незначительно, что ты даже не заметишь.
4) Даже если ты не согласен с ПУНКТ №3, то сути это не меняет. Поддерживать код на экзекьютах - очень сложно
 
  • Like
Реакции: dooj, FireFeed и aspidemon

Inoi

/dev/null
VIP
15 Окт 2020
2,320
1,382
208
34
не оч понятно зачем вы до меня доебались канешна, я просто человеку на вопрос ответил вроде

не вижу никакой проблемы в экзекьютах
в том чтобы поддерживать - тоже, если ты хотя бы один когда-то написал

в евентах в общем-то тоже, но с "прекратите использовать!" могу только поорать конечно
ну
нет
:roflanebalo:

десяток браузеров это конечно вынужденно грустная история, да
местами она неразрывно связана с тысячей верстальщиков, которую я поменял за полтора года
когда-нибудь от неё избавимся
 
Последнее редактирование:
  • OK
Реакции: vpn

vpn

Начинающий специалист
29 Май 2022
129
64
65
1) Поддерживать код на экзекьютах - залупа. Один неправильный символ - всё улетает далеко и надолго
2) Евенты вещь удобная, модная, современное
3) Париться о такой мелочи, как разница во времени между экзекьютом и браузер коллом - очень и очень глупо) Это настолько незначительно, что ты даже не заметишь.
4) Даже если ты не согласен с ПУНКТ №3, то сути это не меняет. Поддерживать код на экзекьютах - очень сложно
Ну я не удивлюсь, если вы до сих пор в ручную используете JSON.(stringify | parse) для (передачи | принятия) аргументов.
Предварительно, когда ты используешь browser.call, тебе придется писать это, раз за разом. (Сеньором тебе не быть)
Или же лучше импортнуть самописную функцию которая сама раскидает все как надо? Вопрос риторический..

Если не получается составить собственный eventEmitter (Который мало того-что будет создавать ивенты в cef, и вызывать ивенты с клиента, так еще и парсить нужные данные), то это уже говорит о немного неправильном ведении кода.
Для новичков или криворуких идея бомба, модная и современная, это да.

Поддерживать код на Execute не сложно, если используешь EcmaScript &&/|| TS &&/|| логически понимаешь структуру как это должно выглядеть.
(Если что, в Ecma и TS автоматические импорты. Нужно лишь написать переменную которую хочешь использовать и нажать ENTER)

Меня не парит "разница во времени между экзекьютом и браузер коллом".. Меня парит что ты выставляешь это за кринж код, предварительно не выстроив для себя локальный API самостоятельно, а так-же предлагаешь отказаться от этого без каких либо причин (ну просто потому-что кринж, а еще потому-что "Не используйте execute, есть евенты, их и используйте")
 
Последнее редактирование:

mippoosedev

Гуру
2 Мар 2021
294
139
100
Ну я не удивлюсь, если вы до сих пор в ручную используете JSON.(stringify | parse) для (передачи | принятия) аргументов.
Предварительно, когда ты используешь browser.call, тебе придется писать это, раз за разом. (Сеньором тебе не быть)
Или же лучше импортнуть самописную функцию которая сама раскидает все как надо? Вопрос риторический..

Если не получается составить собственный eventEmitter (Который мало того-что будет создавать ивенты в cef, и вызывать ивенты с клиента, так еще и парсить нужные данные), то это уже говорит о немного неправильном ведении кода.
Для новичков или криворуких идея бомба, модная и современная, это да.

Поддерживать код на Execute не сложно, если используешь EcmaScript &&/|| TS , а так-же логически понимаешь структуру как это должно выглядеть.
(Если что, в Ecma и TS автоматические импорты. Нужно лишь написать переменную которую хочешь использовать и нажать ENTER)

Меня не парит "разница во времени между экзекьютом и браузер коллом".. Меня парит что ты выставляешь это за кринж код, предварительно не выстроив для себя локальный API самостоятельно, а так-же предлагаешь отказаться от этого без каких либо причин (ну просто потому-что кринж, а еще потому-что "Не используйте execute, есть евенты, их и используйте")
К счастью, у меня кодгенератор, который решает эти проблемы. И да, он работает на евентах. Повторюсь - это удобно, модно, идеально. Хочешь давать советы "сеньорам" - тебе явно не на этот форум) Не советуй новичкам экзекьюты, иначе они умрут от постоянных проблем и ошибок
 

aspidemon

Активный участник
26 Сен 2022
116
42
40
Ну я не удивлюсь, если вы до сих пор в ручную используете JSON.(stringify | parse) для (передачи | принятия) аргументов.
Предварительно, когда ты используешь browser.call, тебе придется писать это, раз за разом. (Сеньором тебе не быть)
Или же лучше импортнуть самописную функцию которая сама раскидает все как надо? Вопрос риторический..

Если не получается составить собственный eventEmitter (Который мало того-что будет создавать ивенты в cef, и вызывать ивенты с клиента, так еще и парсить нужные данные), то это уже говорит о немного неправильном ведении кода.
Для новичков или криворуких идея бомба, модная и современная, это да.

Поддерживать код на Execute не сложно, если используешь EcmaScript &&/|| TS , а так-же логически понимаешь структуру как это должно выглядеть.
(Если что, в Ecma и TS автоматические импорты. Нужно лишь написать переменную которую хочешь использовать и нажать ENTER)

Меня не парит "разница во времени между экзекьютом и браузер коллом".. Меня парит что ты выставляешь это за кринж код, предварительно не выстроив для себя локальный API самостоятельно, а так-же предлагаешь отказаться от этого без каких либо причин (ну просто потому-что кринж, а еще потому-что "Не используйте execute, есть евенты, их и используйте")
Ивент эммитер теперь не нужен - используй мою либу ТЫК