application icon indicating copy to clipboard operation
application copied to clipboard

`UnexpectedValueException` with `$throw` = false on presenter->getComponent

Open mskocik opened this issue 2 years ago • 0 comments

Version: 3.1.2

Bug Description

👉 Presenter with component that can return null under specific conditions.

// exprecting null being stored in $var
$var = $presenter->getComponent('ControlOrNull', false); 

// exception is being thrown in Nette\ComponentModel\Container::createComponent method

Despite setting $throw to false, exception is thrown.

Steps To Reproduce

class MyPresenter extends Presenter {
    public function createComponentControlOrNull(): ?Form
    {
        return null;
    }
}
$val = $presenter->getComponent('ControlOrNull', false); // no exception should be thrown
$vall === true; // should equal true

Expected Behavior

I am able to return null value from createComponent* methods.

Possible Solution

$throw property should be propagated to Nette\ComponentModel\Container::createComponent method.

mskocik avatar Aug 20 '21 16:08 mskocik