anagrius

anagrius

LiveComponent update's params always contain ALL params including non-new

I have a live_view that uses live_components to swap out the content of the page’s main content area depending on the selected item in the parent. I am having an issue where the live_component’s update/2 function’s params argument always contains ALL parameters including (what is in my world) non-new. I would expect mount/1 to be called once, and it is and update/2 to be called each time an parameter changes and only include the parameters that have changed since the last call to update.

But I see update being passed all the params every time. Am i missing something, or dont i understand what constitudes “new”?

The render in the parent looks something like this:

  @impl true
  def render(assigns) do
    selected_resource = assigns.selected_resource
    page = selected_resource && page_module(selected_resource.type, selected_resource.page)
    assigns = assign(assigns, :page, page)

    ~H"""
    <div class="flex h-screen w-screen bg-green">
      <.side_menu
        project={@project}
        selected_tab={@selected_tab}
        search_active={@search_active}
        selected_resource={@selected_resource}
      />
      <div class="flex-1">
        <.async_result :let={resource} assign={@resource}>
          <:loading>
            Loading...
          </:loading>
          <:failed>
            Failed to fetch resource
          </:failed>

          <.live_component
            :if={@page}
            id="page"
            module={@page}
            resource={resource}
            resource_id={@selected_resource}
            project_id={@project_id}
            current_user={@current_user}
            timezone={@timezone}
          />
        </.async_result>
      </div>
    </div>
    """
  end

My live_component update function does:

Map.keys(params) #=> [:id, :resource, :current_user, :resource_id, :timezone, :project_id]

And outputs the same keys every time update is called.

Where Next?

Popular in Questions Top

mgjohns61585
Could someone help me? I'm making my first elixir program, number guessing game. I can't figure out how to convert the user's guess from ...
New
chokchit
** (DBConnection.ConnectionError) connection not available and request was dropped from queue after 2733ms. You can configure how long re...
New
JeremM34
Hello, how can I check the Phoenix version ? Thanks !
New
shahryarjb
Hello, I have map which I want to convert it to string like this: the map: %{last_name: "tavakkoli", name: "shahryar"} the string I ne...
New
jononomo
I am trying to figure out how Mix knows whether the environment is test, dev, or prod -- where is this set? Thanks.
New
vonH
When I run the Plug and I recompile I wind up having to use Ctrl C to quit iex and start again. Witht the help of rlwrap I can use the cu...
New
Lily
In templates/appointment/index.html.eex: &lt;%= for appointment &lt;- @appointments do %&gt; &lt;tr&gt; &lt;td&gt;&lt;%= appoi...
New
bsollish-terakeet
Credo is smart enough to check for (something like) this: assert length(the_list) == 0 with this response: Checking if an enum is empt...
New
jay1
Why is it that the mnesia database isn’t the most preferred database for use in Elixir/Phoenix?
New
script
If I have a string “1000 cfu/ml” . I want to remove the characters and / and space . So the string is like this "1000" What is the ...
New

Other popular topics Top

vertexbuffer
Hello, can anybody help here..? I have a list of players and I what to delete an element, but every for loop the list is reverting to ori...
New
Harrisonl
We have an ECS cluster with 4 services, where each task joins a single cluster, via discovery ECS discovery service. Currently when I de...
New
msaraiva
Surface is an experimental library built on top of Phoenix LiveView and its new LiveComponent API that aims to provide a more declarative...
564 43591 214
New
josevalim
Hi everyone, One of the features added to Elixir early on to help integration with Erlang code was the idea of overridable function defi...
New
New
pmjoe
I have a relationship of love and hate with Elixir. Lots of things are just absolutely right, but there are some things that are kind of ...
New
vrod
I am using the Starship cross-shell prompt – it seems pretty nice, but I get some errors: [WARN] - (starship::utils): Executing command ...
New
WestKeys
Currently suffering from paralysis by [HTTP client] analysis. This is rather unusual in Elixirland as there tends to be consensus on the ...
New
PeterCarter
There are pre-rolled solutions for other frameworks that do work. However, Phoenix does not seem to have these. Have people had good expe...
New
jononomo
For some reason my phoenix channels are working for me in my local dev environment, but as soon as I deploy via Docker, I get a 403 error...
New

We're in Beta

About us Mission Statement