有没有办法在react-toolbox components对话框中使用所需的输入字段?
在那里你可以定义动作:我想将动作定义为提交或阻止默认动作,检查表单中是否填写了html5必填字段
答案 0 :(得分:1)
这就是我在react-toolbox中进行验证的方式。
class MyComponent extends React.Component {
constructor(props) {
super(props);
this.state = {
username: '',
active: false, // for Dialog open/close
errors: {}
};
this.updateState = this.updateState.bind(this);
this.validateFormField = this.validateFormField.bind(this);
}
updateState(value, e) {
this.setState({
[e.target.name]: value
});
}
validateFormField(e) {
const propName = e.target.name;
const value = e.target.value;
const errors = { ...this.state.errors };
errors[propName] = '';
switch (propName) {
case 'username':
if (value === '') {
errors[propName] = 'Username required';
}
// add other checks for username
break;
// add more for fields
default:
}
this.setState({
errors
});
}
render() {
const actions = [
{ label: 'Cancel', onClick: this.cancelAction },
{ label: 'Submit', onClick: this.submitForm }
];
return (
<Dialog
actions={actions}
active={this.state.active}
>
<Input
type="text"
name="username"
label="Username"
onChange={this.updateState}
value={this.state.username}
onBlur={this.validateFormField}
error={this.state.errors.username}
/>
</Dialog>
);
}
}
希望这有帮助。