material-table 中的错误消息
an ErrorMessage in material-table
我正在尝试在进行验证时输入错误消息。
例如-当用户尝试更新电子邮件时,他的电子邮件未通过验证,我有 emailError 'email are not validate',
我不会在输入字段中看到这个。
有人可以帮我解决这个问题吗?
谢谢。
this.state = {
columns: [
{ title: 'Name', field: 'fullName', },
{ title: 'Permission groups', field: 'permissionGroups' },
{ title: 'Email', field: 'email' }
],
formErrors: { emailError: '', fullNameError: '', permissionGroupsError: '' }
//
<MaterialTable
icons={tableIcons}
columns={this.state.columns}
data={this.props.rows}
editable={{
onRowUpdate: (newData, oldData) =>
new Promise((resolve, reject) => {
setTimeout(() => {
if (this.checkValidation()){
resolve();
}
reject();
}, 600);
}),
onRowAdd: newData =>
new Promise((resolve, reject) => {
setTimeout(() => {
if (this.checkValidation()) {
resolve();
}
reject();
}, 600);
}),
}}
/>
这有点棘手。您需要覆盖 editComponent
以显示错误消息。为此,您可以阻止传递给 editComponent
的 onChange 函数并使用挂钩来保持本地状态。本地状态处理新输入和验证。如果验证成功,内容只会传回 table。
这里有一个 sandbox 供您查看。
您可以使用 material table.
中的 validate 道具简单地验证电子邮件
columns: [
{
title: 'Email',
field: 'email',
validate : rowData => {
const EMAIL_REGEX = /^(([^<>()\[\]\.,;:\s@"]+(\.[^<>()\[\]\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/
if(!EMAIL_REGEX.test(rowData.email)){
return{isValid:false,helperText:'Invalid Email'}
}else{
return true
}
}
}
],
我正在尝试在进行验证时输入错误消息。 例如-当用户尝试更新电子邮件时,他的电子邮件未通过验证,我有 emailError 'email are not validate', 我不会在输入字段中看到这个。 有人可以帮我解决这个问题吗? 谢谢。
this.state = {
columns: [
{ title: 'Name', field: 'fullName', },
{ title: 'Permission groups', field: 'permissionGroups' },
{ title: 'Email', field: 'email' }
],
formErrors: { emailError: '', fullNameError: '', permissionGroupsError: '' }
//
<MaterialTable
icons={tableIcons}
columns={this.state.columns}
data={this.props.rows}
editable={{
onRowUpdate: (newData, oldData) =>
new Promise((resolve, reject) => {
setTimeout(() => {
if (this.checkValidation()){
resolve();
}
reject();
}, 600);
}),
onRowAdd: newData =>
new Promise((resolve, reject) => {
setTimeout(() => {
if (this.checkValidation()) {
resolve();
}
reject();
}, 600);
}),
}}
/>
这有点棘手。您需要覆盖 editComponent
以显示错误消息。为此,您可以阻止传递给 editComponent
的 onChange 函数并使用挂钩来保持本地状态。本地状态处理新输入和验证。如果验证成功,内容只会传回 table。
这里有一个 sandbox 供您查看。
您可以使用 material table.
中的 validate 道具简单地验证电子邮件 columns: [
{
title: 'Email',
field: 'email',
validate : rowData => {
const EMAIL_REGEX = /^(([^<>()\[\]\.,;:\s@"]+(\.[^<>()\[\]\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/
if(!EMAIL_REGEX.test(rowData.email)){
return{isValid:false,helperText:'Invalid Email'}
}else{
return true
}
}
}
],