refactor EditableTable separate try-catch on change handlers.

This commit is contained in:
Фролов 2021-09-30 18:00:46 +05:00
parent 74bc512fa3
commit c2243f1eb6

View File

@ -17,7 +17,7 @@ export const EditableTable = ({
columns, columns,
dataSource, dataSource,
onChange, // Метод вызывается со всем dataSource с измененными элементами после любого действия onChange, // Метод вызывается со всем dataSource с измененными элементами после любого действия
onRowAdd, // Метод вызывается с новой добавленной записью. Если метод не поределен, то кнопка добавления строки не показывается onRowAdd, // Метод вызывается с новой добавленной записью. Если метод не определен, то кнопка добавления строки не показывается
onRowEdit,// Метод вызывается с новой отредактированной записью. Если метод не поределен, то кнопка редактирования строки не показывается onRowEdit,// Метод вызывается с новой отредактированной записью. Если метод не поределен, то кнопка редактирования строки не показывается
onRowDelete,// Метод вызывается с удаленной записью. Если метод не поределен, то кнопка удаления строки не показывается onRowDelete,// Метод вызывается с удаленной записью. Если метод не поределен, то кнопка удаления строки не показывается
...otherTableProps}) => { ...otherTableProps}) => {
@ -71,16 +71,29 @@ export const EditableTable = ({
if(item.key === newRowKeyValue) if(item.key === newRowKeyValue)
item.key = newRowKeyValue + newData.length item.key = newRowKeyValue + newData.length
const isAdding = editingKey === newRowKeyValue
setEditingKey('') setEditingKey('')
setData(newData) setData(newData)
if (editingKey === newRowKeyValue) if (isAdding)
try{
onRowAdd(newItem) onRowAdd(newItem)
}catch(err){
console.log('callback onRowAdd fault:', err)
}
else else
try{
onRowEdit(newItem) onRowEdit(newItem)
}catch(err){
console.log('callback onRowEdit fault:', err)
}
try{
if(onChange) if(onChange)
onChange(newData) onChange(newData)
}catch(err){
console.log('callback onChange fault:', err)
}
} catch (errInfo) { } catch (errInfo) {
console.log('Validate Failed:', errInfo) console.log('Validate Failed:', errInfo)