Я развернул веб-часть в семействе веб-сайтов (где веб-часть предназначена для работы), и я получаю ошибки для трех конкретных функций в форме. Для этих функций я использую sp.web.
- Я создал «Hello User», который использует эту функцию:
public _getUser() {
sp.web.currentUser.get().then((user) => {
this.setState({
CurrentUserTitle: user.Title,
FullName: user.Title,
CurrentUser: user.LoginName,
CurrentUserID: user.Id,
CurrentUserEmail: user.Email,
}
- Выпадающий список отделов, который заполняется списком SP.
public _getDepartments() {
sp.web.lists.getByTitle("Departments").items.get().then((items: any[]) => {
let returnedDepts: IDropdownOption[] = items.map((item) => { return { key: item.Title, text: item.Title }; });
this.setState({ DepartmentsList: returnedDepts });
});
}
- Кнопка "Отправить". Функция:
private _onSubmit() {
sp.web.lists.getByTitle('Data and Report Form').items.add({
FullName: this.state.FullName,
UniId: this.state.UniId,
Email: this.state.UserEmail,
Phone: this.state.PhoneNo,
Department: this.state.SelectedDept,
SubDepartment: this.state.SubDepartment,
StartDate: this.state.StartDate,
DiscoveryDate: this.state.DateOfDiscovery,
Details: this.state.IncidentDetails,
PersonalData: this.state.PersonalData
}).then((iar: ItemAddResult) => {
console.log(iar);
let list = sp.web.lists.getByTitle('Data and Report Form');
list.items.getById(iar.data.Id).update({
Title: 'DIBR'+iar.data.Id,
});
this.setState({
JobRef: iar.data.Id,
});
});
}
Форма отлично работает в нелокальной рабочей среде SharePoint, обслуживаемой на фактическом сайте, на котором она предназначена для развертывания. При развертывании в виде пакета на самом сайте и добавлении в качестве веб-части теперь отображаются следующие ошибки:
HTTP404: NOT FOUND - сервер не нашел ничего, соответствующего запрошенному URI (унифицированный идентификатор ресурса). (Получить) GET - https://myDomain.sharepoint.com/sites/IncidentReporting/SitePages/_api/web/currentuser
HTTP404: NOT FOUND - сервер не нашел ничего, соответствующего запрошенному URI (унифицированный идентификатор ресурса). (Получить) GET - https://myDomain.sharepoint.com/sites/IncidentReporting/SitePages/_api/web/lists/getByTitle ("Отделы") / items
Я получаю подобное сообщение при попытке отправить. Я сказал, что все это работает на нелокальном верстаке.
Дополнительные детали:
Если я добавлю веб-часть на домашнюю страницу современного сайта в качестве веб-части, я получаю эту ошибку (отличную от тех, которые возникают при добавлении веб-части на страницу):
HTTP404: NOT FOUND - сервер не нашел ничего, соответствующего запрошенному URI (унифицированный идентификатор ресурса). (Получить) GET - https://MyDomain.sharepoint.com/sites/_api/web/lists/getByTitle ("Отделы") / items
HTTP404: NOT FOUND - сервер не нашел ничего, соответствующего запрошенному URI (унифицированный идентификатор ресурса). (Получить) GET - https://MyDomain.sharepoint.com/sites/_api/web/currentuser
как вы можете видеть, в URL-адресе отсутствует фактический сайт. В чем разница?
У кого-нибудь есть идея, почему он по-другому ведет себя при развертывании? И почему отображается другая ошибка, если я помещаю веб-часть в разные области семейства сайтов.
Обновление: я пытался использовать это:
import pnp from "sp-pnp-js";
public onInit(): Promise<void> {
return super.onInit().then(_ => {
pnp.setup({
spfxContext: this.context
});
});
}
Но я не знаю, как это реализовать, ведь onInit - это Angular, не так ли?
ПОМОЩЬ!
T