redux-form 如何在输入字段中具有初始值
我使用 redux-form
作为我的表单,如下示例:https://redux-form.com/8.3.0/docs/api/fields.md/
因此
如下所示:
<Fields
names={['firstName', 'lastName']}
component={input}
validate={{
firstName: (value, allValues, props, name) => 'error'
}}
warn={{
lastName: (value, allValues, props) => 'warning'
}}
/>
字段组件我渲染的是这个
const renderFields = (fields) => (
<div>
<div className="input-row">
<input {...fields.firstName.input} type="text"/>
{fields.firstName.meta.touched && fields.firstName.meta.error &&
<span className="error">{fields.firstName.meta.error}</span>}
</div>
<div className="input-row">
<input {...fields.lastName.input} type="text"/>
{fields.lastName.meta.touched && fields.lastName.meta.error &&
<span className="error">{fields.lastName.meta.error}</span>}
</div>
</div>
)
到目前为止一切顺利,表单显示了 2 个输入字段,我可以向其中添加值。
但是如何将默认值传递到输入中?
当我将 value
属性添加到 input
中时,我之后无法编辑输入。
例如,我添加 value
属性,其值如下:
const renderFields = (fields) => (
<div>
<div className="input-row">
// add value="my name"
<input {...fields.firstName.input} type="text" value="my name" />
{fields.firstName.meta.touched && fields.firstName.meta.error &&
<span className="error">{fields.firstName.meta.error}</span>}
</div>
<div className="input-row">
// add value="my last name"
<input {...fields.lastName.input} type="text" value="my last name" />
{fields.lastName.meta.touched && fields.lastName.meta.error &&
<span className="error">{fields.lastName.meta.error}</span>}
</div>
</div>
)
这样,输入始终具有相同的初始值。 有关如何设置默认值并能够编辑它的任何帮助,谢谢。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
当您提供
value
属性时,您还需要提供onChange
函数并处理状态 - https://reactjs.org/docs/forms.html#control-components和来自 redux-form 文档:https://redux-form.com/8.3.0/docs/api/field.md/#-code-onchange-event-newvalue-previousvalue-name-gt-void-code-可选-< /a>
When you provide the
value
prop you will need to provideonChange
function as well and handle the state - https://reactjs.org/docs/forms.html#controlled-componentsand from redux-form docs: https://redux-form.com/8.3.0/docs/api/field.md/#-code-onchange-event-newvalue-previousvalue-name-gt-void-code-optional-
您需要一个状态变量来保存输入值。
在
input
标签中,使用之前声明的状态变量作为value
&在input的onChange
中,将输入值设置为目标值。You need a state variable to hold the input value.
In the
input
tag, use the previously declared state variable asvalue
& inonChange
of input, set the input value to the target value.您可以使用 prop defaultValue,如 Redux Form 文档中所述:https://redux-form.com/6.0.0-alpha.4/docs/api/field.md/#props
You can use prop defaultValue, as mentioned in Redux Form documentation :https://redux-form.com/6.0.0-alpha.4/docs/api/field.md/#props