material-table - 材料表中的错误消息
问题描述
我在进行验证时尝试输入错误消息。例如-当用户尝试更新电子邮件时,他的电子邮件未验证,我有 emailError '电子邮件未验证',我不会在输入字段中显示。有人可以帮我解决这个问题吗?谢谢。
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
以显示错误消息。为此,您可以阻止传递给的 onChange 函数editComponent
并使用挂钩来保持本地状态。本地状态处理新输入和验证。如果验证成功,则内容仅传递回表。
这是一个沙盒供您检查。
推荐阅读
- python - 使用来自 python 的输入运行 sql 文件
- angular - Angular Jest 将 Json 传递给组件中的局部变量
- datadog - 向 Datadog 提交速率自定义指标时如何使用间隔
- python - 将 Violinplot 的 PolyCOllection 添加到 add_collection3d
- ios - SF Symbols 在 iOS 15 小部件中失去颜色
- java - Apache poi 如何更改图像宽度?
- regex - 使用正则表达式匹配 Dart 语言中的特定字符串
- php - PHP表单多个值
- node.js - 参数未验证我的验证结果
- sql - 如何从所有用户中获取用户的排名