Я сталкивался с этой проблемой один раз, и, хотя у меня нет подробного ответа, у меня есть несколько решений.
Эта проблема возникает, когда вы используете магазин с inline data
(без надлежащего Ext.data.Model определены), и вы добавляете новую запись, инстанцированную с Ext.data.Model
.
Итак, есть два решения:
Первое решение: добавление встроенных данных
Вместо добавления экземпляра Ext.data.Model
вы добавляете простые данные json с обязательными полями.
// in your handler...
// create the record as json
jsonRecord = {
name: '',
email: '',
phone: ''
}
// Adding to the store converts the json data into records
const addedRecords = store.add(jsonRecord);
// Since we are only adding a single record, we edit the idx 0
rowediting.startEdit(addedRecords[0]);
Второе решение: определите модель для ваших данных
Ext.define('YourModel', {
extend: 'Ext.data.Model',
fields: [
{name: 'name', type: 'string'},
{name: 'email', type: 'string'},
{name: 'phone', type: 'string'}
]
});
И используйте эту модель для создания своего магазина ...
Ext.create('Ext.data.Store', {
storeId: 'simpsonsStore',
model: 'YourModel', // Set model here
// fields:[ 'name', 'email', 'phone'],
data: [
{ name: 'Lisa', email: 'lisa@simpsons.com', phone: '555-111-1224' },
{ name: 'Bart', email: 'bart@simpsons.com', phone: '555-222-1234' },
{ name: 'Homer', email: 'homer@simpsons.com', phone: '555-222-1244' },
{ name: 'Marge', email: 'marge@simpsons.com', phone: '555-222-1254' }
]
});
... и для создания новых записей.
// In your handler
// Create the record with your model
record = Ext.create('YourModel');
// Add to the store
store.add(record);
// Edit the record instance
rowediting.startEdit(record);
В обоих подходахОбновление строки также обновит добавленную запись.
Надеюсь, это поможет