'TypeError: Cannot read properties of undefined (reading 'id')
I have this error in my terminal:
TypeError: Cannot read properties of undefined (reading 'id')
I'm trying to test the call to an API, but the error appears.
My function:
itemToForm = () => {
this.api.send(this.component, 'get',
{ lang: 'ES', filter: { id: this.item['id'] } }
).then(resEsp => {
this.item = resEsp['data'][0];
this.api.send(this.component, 'get',
{ lang: 'EN', filter: { id: this.item['id'] } }
).then(res => {
let itemEng = res['data'][0];
let fields = this.formDef.map(register => register.filter(
field => field['register_table'].indexOf('traduction') !== -1
).map(
field => field['field_name'])
).filter(register => register.length);
fields = fields.length ? fields[0] : [];
if (itemEng) {
this.item = Object.keys(itemEng).reduce((obj, key) => {
obj[key] = this.item[key];
if (fields.indexOf(key) !== -1) {
obj[key + '_eng'] = itemEng[key];
}
return obj;
}, {});
}
if (this.item) {
this.setForm();
}
})
})
}
My specification file:
it('should call api.send', () => {
let spy1 = spyOn(api, 'send');
let item = {
id: 1,
name: 'test',
}
component.addItem(item);
component.itemToForm();
expect(spy1).toHaveBeenCalled();
});
Solution 1:[1]
I bumped to this question but my issue was actually something completely different.
In my code for some reasons I had
import { SOME_OBJECT } from '.';
which should instead be like this:
import { SOME_OBJECT } from './proper-file';
Solution 2:[2]
In case it's useful for anyone to know, I got the error Cannot read properties of undefined (reading 'spec') when attempting to install a local npm module with npm install [path to module here]. The source of the problem: I hadn't given the local module a name in its package.json.
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
| Solution | Source |
|---|---|
| Solution 1 | Francesco Borzi |
| Solution 2 | Raffi |
