Input components have their value prop overwritten in form context if it is nil
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 3/5
- Tempo stimato
- 1-2 giorni
- Idoneità per principianti
- 45/100
Direzione di ricerca
Start with Surface.Components.Form.HiddenInput and the Form/Field handling shown in the reproduction, then run the nested MyComponent example against a changeset. Trace how a nil value prop is resolved in the form context; done means an explicit nil remains effective instead of being replaced by the matching changeset value.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
Describe the bug
Suppose you've got a component that uses a Surface input component:
defmodule MyComponent do
use Surface.LiveComponent
data value, :string, default: nil
def render(assigns) do
~F"""
<Surface.Components.Form.HiddenInput value={@value} />
"""
end
end
Now, if the component is used inside a Surface form context with the form having a changeset, as here:
defmodule MyForm do
Surface.LiveComponent
data changeset, :changeset, (some changeset value)
def render(assigns)
~F"""
<Form for={@changeset}>
<Field name="my_field">
<MyComponent />
</Field>
</Form>
"""
end
end
Then the changeset's value always overrides the nested matching form field value in case if the data 'value' field managed by the stateful component of MyComponent is nil.
The behavior you expected
I should be able to set value prop of the input component explicitely as nil.
Your Environment
Surface: v0.7.4
LiveView: v0.17.10
Elixir: v1.13.4
- Lingua principale
- Elixir
- Stelle
- 2.1k
- Fork
- 146
- Metriche di merge delle PR
- Nessuna PR unita negli ultimi 30g
Preparare l'ambiente
Questo progetto non fornisce container di sviluppo, Dockerfile né guida per i contributori, quindi l'ambiente è a tuo carico: parti dal suo README e consulta la nostra guida al primo contributo per i passaggi generali.
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di surface-ui/surface
-
Difficoltà 1/5 1-3 ore Idoneità per principianti 78/100
surface-ui/surface#634 · 1 reazione ·
-
Difficoltà 4/5 3-5 giorni Idoneità per principianti 35/100
surface-ui/surface#770 ·
-
Website is downAperta
Difficoltà 4/5 3-5 giorni Idoneità per principianti 35/100
surface-ui/surface#768 · 4 commenti ·
-
Difficoltà 4/5 3-5 giorni Idoneità per principianti 35/100
surface-ui/surface#762 · 2 commenti · 1 reazione ·
-
Difficoltà 3/5 1-2 giorni Idoneità per principianti 35/100
surface-ui/surface#759 · 1 reazione ·
Tutte le issue di surface-ui/surface
Issue simili
-
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 93/100
TomerAberbach/profiler-md#732 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 83/100
inertiajs/inertia-phoenix#84 ·
-
(FunctionClauseError) in DataToParams.transform_relationship/2` on scalar relationship linkageAperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100
beam-community/jsonapi#473 ·
-
documentation
Difficoltà 2/5 1-3 ore Idoneità per principianti 62/100
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
I maintainer di solito rispondono entro 2 giorni