如何使用 Redux 限制字段中的字符数?
How to limit number of characters in Field using Redux?
我有字段输入,我的想法是用户只能输入 15 个字符。
15 个字符后,我不想在字段中显示任何内容。我试过 normalize 但没有用。我正在检查 value.length,在 15 个字符后我的状态没有更新,这很好,但我仍然可以输入字符。我想输入 15 个字符后,如果用户输入的内容不在浏览器中显示。谁能帮帮我?
<Field
name={`name`}
placeholder='placeholder'
classes={classes}
component={this.component}
onChange={this.changeHandler}
/>
changeHandler= (event) => {
if(event.target.value.length < 16)
{
this.setState({
myProperty: event.target.value
});
}
为此,您需要一个已处理的值。将 value={this.state.myProperty}
传递给字段。所以如果这个属性在15个字符后不再更新,该字段的值也不会更新。
对于 redux-form Field
没有限制字符数的道具。考虑到您在表单中使用 Field
,您可以验证字段本身(使用 validate
道具,如 this 示例),但仍有可能添加超过 15 个字符。
但如您所知,您可以使用 component
道具自定义 Field
。类似于:
<Field name="myField" component={renderField}/>
并且在 renderField
中你可以使用 input
并且在输入中你有 maxlength
道具。
所以你的 renderField
可能是这样的:
const renderField = (field) => (
<div className="input-row">
<input {...field.input} type="text" maxlength="15"/>
</div>
)
这应该可以解决您的问题。
我有字段输入,我的想法是用户只能输入 15 个字符。 15 个字符后,我不想在字段中显示任何内容。我试过 normalize 但没有用。我正在检查 value.length,在 15 个字符后我的状态没有更新,这很好,但我仍然可以输入字符。我想输入 15 个字符后,如果用户输入的内容不在浏览器中显示。谁能帮帮我?
<Field
name={`name`}
placeholder='placeholder'
classes={classes}
component={this.component}
onChange={this.changeHandler}
/>
changeHandler= (event) => {
if(event.target.value.length < 16)
{
this.setState({
myProperty: event.target.value
});
}
为此,您需要一个已处理的值。将 value={this.state.myProperty}
传递给字段。所以如果这个属性在15个字符后不再更新,该字段的值也不会更新。
对于 redux-form Field
没有限制字符数的道具。考虑到您在表单中使用 Field
,您可以验证字段本身(使用 validate
道具,如 this 示例),但仍有可能添加超过 15 个字符。
但如您所知,您可以使用 component
道具自定义 Field
。类似于:
<Field name="myField" component={renderField}/>
并且在 renderField
中你可以使用 input
并且在输入中你有 maxlength
道具。
所以你的 renderField
可能是这样的:
const renderField = (field) => (
<div className="input-row">
<input {...field.input} type="text" maxlength="15"/>
</div>
)
这应该可以解决您的问题。