Too few arguments to function Livewire\LivewireManager::mount(), 0 passed in

1.9k Views Asked by At

Thanks in advance for helpful advice. I am using Laravel Livewire for creating components and Jetstrap for authentication for those routes that require it.

At the moment I only have one route set up for testing authentication, yet after I have logged in to view that route, I get the following error:

Too few arguments to function Livewire\LivewireManager::mount(), 0 passed in /var/www/mvp/vendor/laravel/framework/src/Illuminate/Support/Facades/Facade.php on line 261 and at least 1 expected

This seems to be originating from the LivewireManager class, inside the getInstance() function:

public function getInstance($component, $id)
    {
        $componentClass = $this->getClass($component);

        throw_unless(class_exists($componentClass), new ComponentNotFoundException(
            "Component [{$component}] class not found: [{$componentClass}]"
        ));

        return new $componentClass($id);
    }

It seems to be expecting a component argument from the Facade class in /vendor/laravel/framework/src/Illuminate/Support/Facades/, but isn't getting the component it needs. I checked the page code, and there is definitely a component there.

The Facade function creating the error:

/**
     * Handle dynamic, static calls to the object.
     *
     * @param  string  $method
     * @param  array  $args
     * @return mixed
     *
     * @throws \RuntimeException
     */
    public static function __callStatic($method, $args)
    {
        $instance = static::getFacadeRoot();

        if (! $instance) {
            throw new RuntimeException('A facade root has not been set.');
        }
        
        return $instance->$method(...$args);
    }

And the page that's supposed to be loading its component:

@extends('layouts.app')
@section('content')
@livewire('component')
@stop

Is there a simple way to fix the problem? Or am I missing something?

2

There are 2 best solutions below

0
On

I got same error like what you get when i try to passing parameter and then i'm solving the problem by following the documentation with changing the way to render livewire component from using blade directive @livewire() into <livewire: >

0
On

If it helps anyone, the cause of this error for me was leaving out one of the two parentheses at the end of this:

        @livewire('component', [
            'currentValue' => $review->body,
            'field' => 'body', 
            'fresh' => $fresh,
            'label' => null,
            'model' => $review
        ], key($review->object_id.'_body'))