当对输入字段使用默认值时,如何绕过带有道具状态的反模式?
在呈现窗体时,它应该包含一些默认值。当我设置一些值并关闭表单,然后重新打开表单时,我希望显示默认值,而不是以前输入的值······
但是当我让state从道具继承值时,道具就永远改变了。我还没找到绕过这个的方法。
如果您查看默认的input
组件,或者来自react-bootstrap
的输入,或者internet上的大多数datepickers
和selects
,您将看到大多数都有value
prop,并且大多数都有little到none状态,至少当涉及到所选值时是这样。
输入
意味着uncontroll
,这意味着它们最好没有状态,只接收作为道具的值,以及当值改变时它们应该调用的回调。由它们上面的控制器-view
来监视这些事件并更改模型。有时,输入也可以方便地将值保持在状态中,但它们只能这样做,只要它们尊重作为道具传递的新值,因为状态会在重新发送器中持续存在,并且getInitialState
只调用一次。请参见:reactJS:为什么将组件初始状态传递为prop反模式?
但是,由于controller-view
处理所有这些值更改太麻烦了,React附带了一个名为ReactLink的实用程序,简单地说,它是一种将输入
自动绑定到controller-view
状态的属性的方法。示例:您可以将输入
绑定到模型的属性dateofborny
,该属性是controller-view
状态的一部分。
现在回到你的问题,你实际上不传递默认值,你传递值本身,作为道具。controller-view
应该决定它是什么。dateofborny
字段的值是多少?没有?好的,我将把默认值作为value
道具传递。
问题内容: 但它不起作用,如何设置默认值? 问题答案: 日期应采用格式。一位数的日期和月份应填充0。一月是01。 从文档中: 代表日期的字符串。 值:RFC3339中定义的有效完整日期,另外具有年份部分为四位或更多位数字表示大于0的数字的资格。 您的代码应更改为:
我在组件中有输入: 模板是: 问题是,如果< code >申请人没有对象< code >代表,申请就会失败。 如果没有,如何设置默认值? 这样地: 我需要始终有< code >类型的< code >代表。 这里还介绍了如何避免错误:
问题内容: 在React中为复选框状态分配默认值后,我无法更新复选框状态。 分配后,我无法通过单击取消选中/选中来交互复选框状态。 问题答案: 如果仅使用创建复选框,则使用该属性 。 归功于@nash_ag
本文向大家介绍如何给非控组件设置默认的值?相关面试题,主要包含被问及如何给非控组件设置默认的值?时的应答技巧和注意事项,需要的朋友参考一下 表单元素依赖于状态(state),表单元素需要默认值实时映射到状态的时候,就是受控组件 不通过state控制表单元素,而是通过ref来控制的表单元素就是非受控组件
你好 我在为字段设置默认值时遇到问题。我使用的是百里叶标签,但字段和值标签不能一起工作。我正在寻找另一种解决方案,以便我可以将默认值传递给该字段。 对于字段的第一个输入:th:field = " { technical attributes[$ { I . index }]。name}"*我试图设置一个默认值,但是对于th:field标签,th:value标签不起作用。这怎么解决?提前感谢您的宝贵
问题内容: 我有文件上传输入: 我这样处理上传: 如果我两次上传相同的文件,则不会触发上传事件。我该如何解决?对于简单的js代码,只需执行以下操作:this.value = null; 在变更处理程序中。我该如何使用ReactJS? 问题答案: 我认为您可以像这样清除输入值: 文件输入无法控制,没有React特定的方式来实现。