kkentzo
Hello!
I am facing an issue with JS hooks when there are multiple live components on the same live view.
More specifically:
- I have one live view that contains two live components
- each component is connected to a JS hook
- each JS hook subscribes to a
pingevent usinghandleEvent - on
update/2each live component sends apingevent to its hook usingpush_event
The problem is that both hooks receive one ping event that is sent from the second component only; the first component’s event never reaches the client.
I have set up a minimal example that demonstrates this problem in this repo.
Any insight on this behaviour? Am I doing something wrong?
Trending in Questions
I’m working on a project that simulates the bumbl example in the programming phoenix book. It acts almost like an email client. We have a...
New
Hello,
I know there is an approach for handling lists that allows for optimized traversal, but I can’t recall the specific method (somet...
New
Documentation
While reading the Scoped Routes section, I noticed that the documentation currently refers to a problem without explainin...
New
I’m seeing that a list inside a Kino.DataTable will be interpreted as a charlist, even if the Kino.configure() is set to charlists: :as_l...
New
So my question is quite simple and i have found no conclusive answer on forum, google or AI.
Should we use :erlang.float for Integer to ...
New
I recently noticed that Elixir’s Logger defaults its primary log level to :debug when no :logger, :level application configuration is pre...
New
Hi, I’ve just set up an application with ash_authentication. There is only magic link strategy for now, so there is no confirmation add o...
New
Other Trending Topics
Hey, I’m Jesse and I’m the main contributor behind Dexter, a full-featured, lightning-fast Elixir LSP optimized for large codebases. It s...
New
I am happy to introduce the very α version of the new programming language compiled to BEAM.
Welcome Cure.
It has literally three kille...
New
Hi there! We created Gust: A task orchestrator inspired by Airflow.
For those who have never heard about Aiflow, it’s a Python-based wor...
New
Hi everyone!
The first release candidate for the Expert language server project is now available!
We’ve published a press release detai...
New
Beam Bots (or just BB for short) is a framework for building fault-tolerant robotics applications in Elixir using familiar OTP patterns. ...
New
Xamal is a deployment tool for Elixir apps that deploys native releases to bare metal servers over SSH. It’s a port of GitHub - basecamp/...
New
Categories:
Sub Categories:
Forums
Popular Tags
- #ecto
- #liveview
- #troubleshooting
- #learning-elixir
- #library
- #deployment
- #erlang
- #testing
- #genserver
- #mix
- #absinthe
- #remote-other
- #otp
- #plug
- #how-to-question
- #macros
- #postgres
- #elixirconf
- #channels
- #exunit
- #discussion
- #code-sync
- #podcasts
- #javascript
- #onsite
- #dialyzer
- #docker
- #authentication
- #umbrella
- #full-time-contract
- #podcasts-by-brainlid
- #ecto-query
- #elixirconf-us
- #ai
- #blog-post
- #elixir-ls
- #phoenix_html
- #iex
- #graphql
- #genstage
- #websockets
- #supervisor
- #advent-of-code
- #distillery
- #processes
- #api
- #forms
- #metaprogramming
- #hex
- #security










Marked As Solved- Show Best Posts
- Show All (oldest first)
- Show All (newest first)
chrismccord
This was a bug that has been fixed on master, but I also think there is some confusion here on how
push_eventworks. Events are “global” for all hooks and can be pushed from any LiveView or component and read by any hook usinghandleEventon the client. In this case, we have a diff producing two ping events . In your app what will be received is both hooks receive ping-a and ping-b events. It appears you are expecting pushed events to be isolated to their components, but that’s not the case. To get that kind of behavior you can namespace your events, ie:I just fixed the dup event keys being eaten, but your code needs to change to behave how you want. Make sense?
Also Liked
Matsa59
Effectively I observe the same behaviour that sounds like a bug.
Don’t use live view in live view for that simple case, instead you can :
The
send/2will send a message to parent live view. So simply handle it like the following code:benwilson512
@kkentzo stateful live components are required to have unique DOM ids, but yours do not have any DOM ID at all: live-component-push-event-issue/lib/live_component_js_issue_web/live/counter_component.ex at master · kkentzo/live-component-push-event-issue · GitHub
kkentzo
@chrismccord: Makes full sense - yes, I am aware of the behaviour you are describing, it’s just that my trivial example was meant to demonstrate the “eaten” events.
Good to know that it’s now been fixed - many thanks!