Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
16.05.2020, 12:36
|
|||
---|---|---|---|
передача параметров в метод сервиса blazor и вызов компонентов |
|||
#18+
Здравствуйте! У меня приложение blazor server по типовому образцу. В нем я создал свой компонент "GoodStock, который загружает данные из базы данных используя метод сервиса, который делает выборку по параметрам. Я так же определил компонент радиобатн. Нужно , что бы по клику на этой радиобатн происходила загрузка компонента GoodStock и при этом в метод сервиса передавался параметр этой радиобатн(в данном случае "0" или "1"). Как это сделать, ведь компонент радиобатн и компонент GoodStock не являются друг к другу дочерним и родительским? Может быть мой вопрос непонятен и нужны какие то пояснения или код? ... |
|||
:
Нравится:
Не нравится:
|
|||
|
16.05.2020, 12:42
|
|||
---|---|---|---|
|
|||
передача параметров в метод сервиса blazor и вызов компонентов |
|||
#18+
jeanssp компонент радиобатн и компонент GoodStock не являются друг к другу дочерним и родительским? В итоге в разметке родительского компонента ты пишешь Код: html 1. 2. 3.
Соответственно, по клику на радиобатоне родительский компонент устанавливает своё поле _showGoodStock=true, а в компоненте GoodStock у тебя должен быть [Parameter], который примет значение радиобатона. Как-то так ... |
|||
:
Нравится:
Не нравится:
|
|||
|
16.05.2020, 12:46
|
|||
---|---|---|---|
|
|||
передача параметров в метод сервиса blazor и вызов компонентов |
|||
#18+
jeanssp GoodStock, который загружает данные из базы данных используя метод сервиса ... |
|||
:
Нравится:
Не нравится:
|
|||
|
16.05.2020, 12:55
|
|||
---|---|---|---|
передача параметров в метод сервиса blazor и вызов компонентов |
|||
#18+
Shocker.Pro, Спасибо, попробую разобраться! ... |
|||
:
Нравится:
Не нравится:
|
|||
|
17.05.2020, 21:45
|
|||
---|---|---|---|
передача параметров в метод сервиса blazor и вызов компонентов |
|||
#18+
Я вывел в родительский компонент булеву переменную , которая меняется в зависимости от положения switch. Но теперь проблема в том, что этот компонент _mainLayout и дочка передается через @body. И что теперь делать не знаю, читаю документацию . Если кто знает- подскажите!! ... |
|||
:
Нравится:
Не нравится:
|
|||
|
19.05.2020, 12:17
|
|||
---|---|---|---|
передача параметров в метод сервиса blazor и вызов компонентов |
|||
#18+
jeanssp, Всё. Уперся в стену. Пошел angular учить. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
19.05.2020, 12:49
|
|||
---|---|---|---|
передача параметров в метод сервиса blazor и вызов компонентов |
|||
#18+
jeanssp, я тоже также поступил когда разбирался с ASP MVC. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
22.05.2020, 12:00
|
|||
---|---|---|---|
передача параметров в метод сервиса blazor и вызов компонентов |
|||
#18+
Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9.
Ну вот я передал параметр в дочерний компонент(из сестринского в сестринский через родительский). Но теперь в родительском компоненте я должен кликнуть радиобатн и параметр должен поменяться. Как сделать, чтобы метод сервиса выполнился с новым параметром и компонент перезагрузился? ... |
|||
:
Нравится:
Не нравится:
|
|||
|
22.05.2020, 14:43
|
|||
---|---|---|---|
|
|||
передача параметров в метод сервиса blazor и вызов компонентов |
|||
#18+
Зачем нужно делать так, чтобы компонент перезагружался??? Если нужно обновить экран, есть StateHasChanged Если нужно переинициализовать компонент - вынеси всю инициализацию в отдельный метод и вызывай его например при смене параметра (set {...}) Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9.
... |
|||
:
Нравится:
Не нравится:
|
|||
|
22.05.2020, 17:55
|
|||
---|---|---|---|
передача параметров в метод сервиса blazor и вызов компонентов |
|||
#18+
Shocker.Pro, Простите, А как вызвать метод внутри компонента при смене параметра? ... |
|||
:
Нравится:
Не нравится:
|
|||
|
22.05.2020, 18:13
|
|||
---|---|---|---|
|
|||
передача параметров в метод сервиса blazor и вызов компонентов |
|||
#18+
jeanssp Простите, А как вызвать метод внутри компонента при смене параметра? Только с асинхронностью надо смотреть, что там в задаче. Если GetGoods - быстрый метод, можно просто вызвать его синхронно. Если там IO - лучше запустить задачу без ожидания, а по окончании InvokeAsync(StateHasChanged). (правда, непонятно, почему он тогда сам не является асинхронным, но это другой вопрос) ... |
|||
:
Нравится:
Не нравится:
|
|||
|
22.05.2020, 18:32
|
|||
---|---|---|---|
передача параметров в метод сервиса blazor и вызов компонентов |
|||
#18+
jeanssp Shocker.Pro, Простите, А как вызвать метод внутри компонента при смене параметра? Вроде нашел статью про {set} ... |
|||
:
Нравится:
Не нравится:
|
|||
|
22.05.2020, 18:38
|
|||
---|---|---|---|
|
|||
передача параметров в метод сервиса blazor и вызов компонентов |
|||
#18+
jeanssp Вроде нашел статью про {set} ... |
|||
:
Нравится:
Не нравится:
|
|||
|
24.05.2020, 14:50
|
|||
---|---|---|---|
передача параметров в метод сервиса blazor и вызов компонентов |
|||
#18+
Shocker.Pro, Я учил. Честно. Поставьте тройку пожалуйста)))) Просто не сталкивался с такого рода событиями. Это мне костыль какой то напоминает. Думаю, может у меня что то в архитектуре не правильно. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
24.05.2020, 16:18
|
|||
---|---|---|---|
|
|||
передача параметров в метод сервиса blazor и вызов компонентов |
|||
#18+
Причем тут "такого рода события"? Это базовые основы типов в .NET, не имеющие отношения к Blazor Я структуру твою в целом не вижу, но почему ты считаешь это костылем - не понимаю, это обычный способ применения свойств в .NET ... |
|||
:
Нравится:
Не нравится:
|
|||
|
24.05.2020, 17:20
|
|||
---|---|---|---|
передача параметров в метод сервиса blazor и вызов компонентов |
|||
#18+
Shocker.Pro, У меня знания слабые. Я делаю себе приложение для магазина одежды . Десктопная часть уже готова на WF, теперь интернет магазин стряпаю потихонечку. Хочется вроде, что бы были компоненты. Индекс - родительский. Дочерние: 1-меню с радиокнопкой выбора пола. 2-карточки товаров. остальное меню категорий еще далеко впереди. Мне не нравится, что приходится 1 событие тащить через два компонента вверх и вниз. Ну да ладно. Я события не очень хорошо понимаю, привык в WF привязываться к кнопкам а суть еще предстоит постичь. Еще раз благодарю за ответы. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
24.05.2020, 17:33
|
|||
---|---|---|---|
|
|||
передача параметров в метод сервиса blazor и вызов компонентов |
|||
#18+
jeanssp Я события не очень хорошо понимаю ... |
|||
:
Нравится:
Не нравится:
|
|||
|
24.05.2020, 19:47
|
|||
---|---|---|---|
передача параметров в метод сервиса blazor и вызов компонентов |
|||
#18+
Shocker.Pro, Понял! Вот я ступил. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
24.05.2020, 20:58
|
|||
---|---|---|---|
передача параметров в метод сервиса blazor и вызов компонентов |
|||
#18+
jeanssp, Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75. 76. 77. 78. 79.
Если я вызываю метод OnInitializedAsync() кнопкой Код: html 1.
- все работает. А из сеттера пишет ошибку 'An attempt was made to use the context while it is being configured. A DbContext instance cannot be used inside OnConfiguring since it is still being configured at this point. This can happen if a second operation is started on this context before a previous operation completed. Any instance members are not guaranteed to be thread safe.' Метод GetGoods в сервисе - обычный Код: c# 1. 2. 3. 4. 5. 6. 7. 8.
и ошибка происходит как раз в нем. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
24.05.2020, 21:12
|
|||
---|---|---|---|
передача параметров в метод сервиса blazor и вызов компонентов |
|||
#18+
Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16.
jeanssp, так просто не работает. ни чего не происходит ... |
|||
:
Нравится:
Не нравится:
|
|||
|
24.05.2020, 22:51
|
|||
---|---|---|---|
|
|||
передача параметров в метод сервиса blazor и вызов компонентов |
|||
#18+
так, естественно, ничего не будет работать. Тебе нужно получше изучить тему асинхронности в C#/.NET Смысл в том, что ты не ожидаешь, когда у тебя завершится задача обращения к БД, а сразу пытаешься обновить компонент, естественно, ничего не происходит. Тут сразу много косяков в этом коде, ща попробую расписать ... |
|||
:
Нравится:
Не нравится:
|
|||
|
24.05.2020, 22:58
|
|||
---|---|---|---|
|
|||
передача параметров в метод сервиса blazor и вызов компонентов |
|||
#18+
Во-первых - не надо вызывать служебную функцию OnInitializedAsync из разметки. Я ведь специально выше написал, чтобы ты вынес инициализацию в отдельную функцию, чтобы ее можно было вызывать отдельно (честно говоря, я до этого отвечал, рассчитывая на определенную квалификацию, придется сделать скидку) Во-вторых - в 2020-м году не надо делать синхронные методы репозитория, а потом заворачивать их в таски. EF поддерживает асинхронные методы, их и надо использовать, таким образом: Код: c# 1. 2. 3. 4. 5. 6. 7. 8.
(кстати, тут не помешает вспомнить про сортировку....) ... |
|||
:
Нравится:
Не нравится:
|
|||
|
24.05.2020, 23:01
|
|||
---|---|---|---|
|
|||
передача параметров в метод сервиса blazor и вызов компонентов |
|||
#18+
3) Соответственно, вызов репозитория у тебя превращается в Код: c# 1. 2. 3. 4. 5.
то есть обновлять внешний вид компонента нужно ПОСЛЕ того, как репозиторий вернет тебе список товаров, а не ДО ... |
|||
:
Нравится:
Не нравится:
|
|||
|
24.05.2020, 23:04
|
|||
---|---|---|---|
|
|||
передача параметров в метод сервиса blazor и вызов компонентов |
|||
#18+
4) Параметр соответственно, должен вызывать функцию инициализации (хотя я бы её переименовал в RefreshListAsync - по её сути) без ожидания результата, чтобы не влиять на рендеринг вышестоящего компонента Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13.
... |
|||
:
Нравится:
Не нравится:
|
|||
|
24.05.2020, 23:09
|
|||
---|---|---|---|
|
|||
передача параметров в метод сервиса blazor и вызов компонентов |
|||
#18+
5) Что касается инициализации компонента - а вот тут я как раз не стал бы ожидать ответа от БД - это операция длительная. Пусть сначала будет выведено "Loading...", а когда список товаров подгрузится, то компонент обновиться и выведет список товаров. Так что можно вызвать без ожидания Код: c# 1. 2. 3. 4. 5.
... |
|||
:
Нравится:
Не нравится:
|
|||
|
|
start [/forum/topic.php?fid=18&mobile=1&tid=1354442]: |
0ms |
get settings: |
10ms |
get forum list: |
16ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
25ms |
get topic data: |
13ms |
get forum data: |
2ms |
get page messages: |
55ms |
get tp. blocked users: |
1ms |
others: | 265ms |
total: | 395ms |
0 / 0 |