#default_value for select form elements does not work
The #default_value for a select element should be an integer value matching an array key in the #options array. 


In your case, lets say 

$taxs = [5 =&gt; 'blue dish', 9 =&gt; 'red dish', 15 =&gt; 'green dish'];


Then an option for the value for *#default_value will be one of 5,9 or 15. 

In your case the function $form_state->hasValue('dish_dropdown') will return one of "blue dish", "red dish" or "green dish" which is not an array key in your $taxs array. 

So what do you do? 


Either select one of your dish types as the default OR
Add a default value - None -


For example:

$taxs[0] = '-- None --';
$reverseTaxs = array_flip($taxs);
$form['dish_dropdown'] = array(
        '#type' =&gt; 'select',
        '#options' =&gt; $taxs,
        '#chosen' =&gt; true,
        '#multiple' =&gt; false,
        '#maxlength' =&gt; $maxlength,
        '#default_value' =&gt; $form_state-&gt;hasValue('dish_dropdown') ? $reverseTaxs[$form_state-&gt;getValue('dish_dropdown')] : 0 ,

    $form['submit'] = [
        '#type'  =&gt; 'submit',
        '#value' =&gt; $this-&gt;t('Ir al tipo de plato'),
        '#weight' =&gt; 50,
    ];
    return $form;