Input components have their value prop overwritten in form context if it is nil
还没有人认领这个 Issue。
评估
调研方向
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.
由索引模型根据 Issue 内容生成。
描述
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
- 主要语言
- Elixir
- 星标
- 2.1k
- 派生
- 146
- PR 合并指标
- 30 天内没有已合并 PR
环境准备
这个项目没有提供开发容器、Dockerfile 或贡献指南,环境需要你自己搭建:先看它的 README,通用步骤见我们的新手贡献指南。
从这里开始
- 先读完整个 Issue,再读项目的贡献指南。
- 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
- Fork 仓库,在一个分支上完成修改。
- 提交 Pull Request,并在描述里引用这个 Issue 编号。
surface-ui/surface 的其他 Issue
-
难度 1/5 1-3 小时 新手友好度 78/100
surface-ui/surface#634 · 1 个 reaction ·
-
难度 4/5 3-5 天 新手友好度 35/100
surface-ui/surface#770 ·
-
Website is down未关闭
难度 4/5 3-5 天 新手友好度 35/100
surface-ui/surface#768 · 4 条评论 ·
-
难度 4/5 3-5 天 新手友好度 35/100
surface-ui/surface#762 · 2 条评论 · 1 个 reaction ·
-
难度 3/5 1-2 天 新手友好度 35/100
surface-ui/surface#759 · 1 个 reaction ·
查看 surface-ui/surface 的全部 Issue
相似的 Issue
-
难度 2/5 1-3 小时 新手友好度 70/100
-
难度 2/5 1-3 小时 新手友好度 72/100
electric-sql/electric#4830 ·
维护者通常 1 天内回复
-
难度 2/5 1-3 小时 新手友好度 75/100
维护者通常 1 天内回复
-
Gradle release-date fallback accepts `Last-Modified` from non-2xx responses, so `cooldown` lets brand-new plugin versions through可能已有人在做 @v-robaiken 于 1 天前认领。 未关闭L: java:gradle T: bug 🐞
难度 2/5 1-3 小时 新手友好度 76/100
dependabot/dependabot-core#16547 · 1 个 reaction · 已指派 2 人 ·
维护者通常 1 天内回复
-
github_actions
难度 1/5 1 小时以内 新手友好度 94/100
维护者通常 1 天内回复