sympmarc / SPServices

SPServices is a jQuery library which abstracts SharePoint's Web Services and makes them easier to use. It also includes functions which use the various Web Service operations to provide more useful (and cool) capabilities. It works entirely client side and requires no server install.
MIT License
207 stars 62 forks source link

spservices.js.. Error:- Uncaught (in > promise) TypeError: Cannot read properties of undefined (reading > 'LookupList') #87

Closed mvcsharepointdev closed 2 years ago

mvcsharepointdev commented 2 years ago

Inside our SPFx web part we have the following code inside the spservices.js code:-

spservices.prototype.getLookupFieldOptions = function (siteUrl, listId, fieldInternalName) { return __awaiter(this, void 0, void 0, function () { var fieldOptions, web, results, options, _i, options_1, option, error_14; return __generator(this, function (_a) { switch (_a.label) { case 0: fieldOptions = []; _a.label = 1; case 1: _a.trys.push([1, 5, , 6]); web = new Web(siteUrl); return [4 /yield/, web.lists.getById(listId) .fields.usingCaching() .filter("InternalName eq '" + fieldInternalName + "'") .select("LookupList", "LookupWebId", "LookupField") .top(1) .get()]; case 2: results = _a.sent(); if (!results) return [3 /break/, 4]; return [4 /yield/, web.lists.getById(results[0].LookupList) .items.usingCaching() .select("ID", results[0].LookupField) .getAll()]; case 3: options = _a.sent(); if (options && options.length > 0) { for (_i = 0, options_1 = options; _i < options_1.length; _i++) { option = options_1[_i]; fieldOptions.push({ key: option.ID, text: option[results[0].LookupField] }); } } _a.label = 4; case 4: return [3 /break/, 6]; case 5: error_14 = _a.sent(); return [2 /return/, Promise.reject(error_14)]; case 6: return [2 /return/, fieldOptions]; } }); }); };

but on runtime the SPFx web part will return this error and it will keep loading forever:-

calendar-web-part_a87ac4ce95dc9057c9f00ccd9727c133.js:1 Uncaught (in promise) TypeError: Cannot read properties of undefined (reading 'LookupList')

this is the piece of code which is returning the error:-

return [4 /*yield*/, web.lists.getById(results[0].LookupList)

as follow:-

image

any advice on this please?

sympmarc commented 2 years ago

@mvcsharepointdev - SPServices is a very old library which uses the SOAP Web Services. I would advise against using it within SPFx entirely. Instead, please look at using PnPjs.