legibly-sinless-fil

legibly-sinless-fil

I have tried creating a fresh project using LiveView. I am following this tutorial : https://www.youtube.com/watch?v=qpaFivCmJOY. I have followed the installation instruction manual and created a basic controller for my view, that contains a live_render tag, referencing a LiveView controller.

Template :

<h1>Projects</h1>                                                                                                                                                                                                                                                           
<%= live_render(@conn, TodoistHelperWeb.AppController) %>

Normal controller :

defmodule TodoistHelperWeb.PageController do                                                                                                                                                                                                                                
  use TodoistHelperWeb, :controller                                                                                                                                                                                                                                         
                                                                                                                                                                                                                                                                            
  def index(conn, _params) do                                                                                                                                                                                                                                               
    render(conn, "index.html")                                                                                                                                                                                                                                              
  end                                                                                                                                                                                                                                                                       
end 

LiveView controller :

defmodule TodoistHelperWeb.AppController do                                                                                                                                                                                                                                 
  use Phoenix.LiveView                                                                                                                                                                                                                                                      
                                                                                                                                                                                                                                                                            
  def mount(_session, socket) do                                                                                                                                                                                                                                            
    {:ok, assign(socket, projects: ["project1"])}                                                                                                                                                                                                                                  
  end                                                                                                                                                                                                                                                                       
                                                                                                                                                                                                                                                                            
  def render(assigns) do                                                                                                                                                                                                                                                    
      TodoistHelperWeb.AppView.render("projects.html", assigns)                                                                                                                                                                                                             
  end                                                                                                                                                                                                                                                                       
end

LiveView template :

<%= for project <- @projects do %>                                                                                                                                                                                                                                          
<div><%= project %></div>                                                                                                                                                                                                                                                   
<% end %>

The project compiles correctly, everything seems to work, but the @projects variable cannot be found in the liveview template! If I replace it with a static list, the page is displayed without any errors. Using print statements, I was able to determine that render is properly called, however mount is not.

What did I miss? Did I mess up one of the installation steps?

Showing Posts 1 to 2

josevalim

josevalim

Creator of Elixir

It should be mount/3:

@impl true
def mount(_params, _session, socket) do
  {:ok, assign(socket, projects: ["project1"])}
end

If you put @impl true whenever you are implementing a callback, Elixir will let you know if you got the wrong name or the wrong number of arguments. :slight_smile:

legibly-sinless-fil

legibly-sinless-fil OP

Oh god that was pretty dump -_-… Thanks!

— All posts loaded —

Where Next? Top

Trending in Questions Top

RSP87
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
nseaSeb
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
kpanic
Hi everyone, I am toying with the idea of building a “match maker” for giving personal help to people that wants to start coding. I sta...
New
brecabral
Documentation While reading the Scoped Routes section, I noticed that the documentation currently refers to a problem without explainin...
New
velrest
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
asweet-confluent
I recently noticed that Elixir’s Logger defaults its primary log level to :debug when no :logger, :level application configuration is pre...
New
apz
I’m new to elixir and just tried to install the elixirLS extension for VScode(ium) and it is throwing some errors that I would like help ...
New

Other Trending Topics Top

GenericJam
Edit: 2026 May 15 - This post is archived. Mob is alive!! Main docs: mob v0.7.11 — Documentation A bit of explanation for the slightly c...
New
JesseHerrick
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
mudasobwa
I am happy to introduce the very α version of the new programming language compiled to BEAM. Welcome Cure. It has literally three kille...
New
marciok
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
mhanberg
Hi everyone! The first release candidate for the Expert language server project is now available! We’ve published a press release detai...
New
jimsynz
Beam Bots (or just BB for short) is a framework for building fault-tolerant robotics applications in Elixir using familiar OTP patterns. ...
New

We're in Beta

About us Mission Statement

Options

Thread Display Mode




Thread Preview

Skip Thread Previews