SharePoint 反应 pnpjs
SharePoint React pnpjs
我正在为 SharePoint 框架开发一个 React 项目。
我的问题比较笼统。
我遇到了一个我不明白的问题:
我尝试将 sp.search 与匹配 SearchQuery 接口的对象一起使用,但在扩展 react.component
的 class 中执行此操作
代码:
public search(query: string, properties: Array<string>, rowLimit: number): Promise<SearchResults> {
return new Promise<SearchResults>(async (resolve) => {
let result = await sp.search(<SearchQuery>{
Querytext: query,
SelectProperties: properties,
RowLimit: rowLimit
});
resolve(result);
});
}
如您所见,这只是一个基本的搜索功能。如果我在不扩展 react.component 的 class 中使用 sp.search,或者如果我不使用 searchquery 实例,但使用普通查询字符串一切正常。
我好像是类型错误,但老实说,我不明白发生了什么。
错误:
[ts]Argument of type 'Element' is not assignable to parameter of type 'SearchQueryInit'. Type 'Element' is not assignable to type 'ISearchQueryBuilder'.
Property 'query' is missing in type 'Element'. [2345]
[ts] JSX element 'SearchQuery' has no corresponding closing tag. [17008]
[ts] 'SearchQuery' only refers to a type, but is being used as a value here. [2693]
所以我决定只编写一个使用 pnpjs 的服务,这完全没问题,特别是因为我不打算在组件中使用 pnpjs,那只是为了更快一点并且有一些东西可以测试和一起工作。但是,尽管如此,我真的很想了解发生了什么。顺便说一句,如果你感兴趣的话,我正在使用 TypeScript。
显然,这些错误的发生是由于使用 <T>
泛型参数声明与 JSX 语法相结合造成的限制,请参阅 this issue for a more details (which is marked as a Design Limitation
)
要避免此错误,请创建 SearchQuery
的实例:
const searchQuery: SearchQuery = {
Querytext: query,
SelectProperties: properties,
RowLimit: rowLimit
};
然后传给sp.search
方法:
let result = await sp.search(searchQuery);
我正在为 SharePoint 框架开发一个 React 项目。
我的问题比较笼统。
我遇到了一个我不明白的问题:
我尝试将 sp.search 与匹配 SearchQuery 接口的对象一起使用,但在扩展 react.component
代码:
public search(query: string, properties: Array<string>, rowLimit: number): Promise<SearchResults> {
return new Promise<SearchResults>(async (resolve) => {
let result = await sp.search(<SearchQuery>{
Querytext: query,
SelectProperties: properties,
RowLimit: rowLimit
});
resolve(result);
});
}
如您所见,这只是一个基本的搜索功能。如果我在不扩展 react.component 的 class 中使用 sp.search,或者如果我不使用 searchquery 实例,但使用普通查询字符串一切正常。
我好像是类型错误,但老实说,我不明白发生了什么。
错误:
[ts]Argument of type 'Element' is not assignable to parameter of type 'SearchQueryInit'. Type 'Element' is not assignable to type 'ISearchQueryBuilder'.
Property 'query' is missing in type 'Element'. [2345]
[ts] JSX element 'SearchQuery' has no corresponding closing tag. [17008]
[ts] 'SearchQuery' only refers to a type, but is being used as a value here. [2693]
所以我决定只编写一个使用 pnpjs 的服务,这完全没问题,特别是因为我不打算在组件中使用 pnpjs,那只是为了更快一点并且有一些东西可以测试和一起工作。但是,尽管如此,我真的很想了解发生了什么。顺便说一句,如果你感兴趣的话,我正在使用 TypeScript。
显然,这些错误的发生是由于使用 <T>
泛型参数声明与 JSX 语法相结合造成的限制,请参阅 this issue for a more details (which is marked as a Design Limitation
)
要避免此错误,请创建 SearchQuery
的实例:
const searchQuery: SearchQuery = {
Querytext: query,
SelectProperties: properties,
RowLimit: rowLimit
};
然后传给sp.search
方法:
let result = await sp.search(searchQuery);