【发布时间】:2020-02-27 19:42:53
【问题描述】:
想象一下,如果有一个具有以下属性的对象。
var rules = {
confirmedPassword: 'required|min:4|max:10',
}
我想要的是这个:
rules = { rules.confirmedPassword && {...rules.confirmedPassword, rules.confirmedPassword: '|same:password'}}
要产生这个:
rules = {confirmedPassword: 'required|min:4|max:10|same:password',}
原因是,在反应中,我在函数中使用event.target 稍后执行验证。
因此,如果用户使用name="confirmPassword" 来点击input 元素,它不仅会有默认的required|min:4|max:10,而且实际上是'required|min:4|max:10|same:password';
validateInputs(event) {
var { password, confirmPassword } = this.state;
var { name, value } = event.target;
var data = {
password: password,
confirmPassword: confirmPassword
};
var rules = {};
rules[name] = 'required|min:4|max:10';
var messages = {
'password.min': 'Password is too short.',
'password.max': 'Password is too long.',
'confirmPassword.min': 'Password is too short.',
'confirmPassword.max': 'Password is too long.'
};
validate(data, rules, messages)
.then(feedback => console.log(feedback))
.catch(errors => console.log('foo', errors));
this.setState({
[name]: value
});
}
提前致谢!
【问题讨论】:
标签: ecmascript-6 javascript-objects