LWC超级徽章第14步挑战
LWC superbadge step 14 challenge
我在 LWC superbadge 的第 14 步收到以下错误:我们无法找到具有在组件 similarBoats [=13= 中正确使用的数据 属性 的数据 属性 的有线服务提供的函数 similarBoats() ] 文件。确保组件是根据要求创建的,包括 relatedBoats、boatId 和 similarBy 的正确值,使用正确的区分大小写和一致的引用。下面是我的文件的 JS 代码。有人能告诉我我的代码有什么问题吗??我已经坚持这个超过24小时了。
import { LightningElement, api, wire } from 'lwc';
import getSimilarBoats from '@salesforce/apex/BoatDataService.getSimilarBoats';
import { NavigationMixin } from 'lightning/navigation'
export default class SimilarBoats extends NavigationMixin(LightningElement) {
@api similarBy;
relatedBoats;
boatId;
error;
// public
@api
get recordId() {
return this.boatId;
}
set recordId(value) {
// sets the boatId value
this.boatId = value;
// sets the boatId attribute
}
@wire(getSimilarBoats, { boatId: this.boatId, similarBy: '$similarBy' })
similarBoats({ error, data }) {
if (data) {
this.relatedBoats = data;
this.error = undefined;
} else if (error) {
this.relatedBoats = undefined;
this.error = error;
}
}
get getTitle() {
return 'Similar boats by ' + this.similarBy;
}
get noBoats() {
return !(this.relatedBoats && this.relatedBoats.length > 0);
}
// Navigate to record page
openBoatDetailPage(event) {
this[NavigationMixin.Navigate]({
type: 'standard__recordPage',
attributes: {
recordId: this.boatId,
objectApiName: BOAT_OBJECT,
actionName: 'view'
},
});
}
}
你的问题是你正在使用 { boatId: this.boatId, ...
,而你需要使用 { boatId: '$boatId', ...
。
除了 Joe 指出的内容之外,您还需要将以下行添加到您的 recordId setter 以便为该属性设置正确的值(如注释所示)。
// sets the boatId attribute
this.setAttribute('boatId', value);
我在 LWC superbadge 的第 14 步收到以下错误:我们无法找到具有在组件 similarBoats [=13= 中正确使用的数据 属性 的数据 属性 的有线服务提供的函数 similarBoats() ] 文件。确保组件是根据要求创建的,包括 relatedBoats、boatId 和 similarBy 的正确值,使用正确的区分大小写和一致的引用。下面是我的文件的 JS 代码。有人能告诉我我的代码有什么问题吗??我已经坚持这个超过24小时了。
import { LightningElement, api, wire } from 'lwc';
import getSimilarBoats from '@salesforce/apex/BoatDataService.getSimilarBoats';
import { NavigationMixin } from 'lightning/navigation'
export default class SimilarBoats extends NavigationMixin(LightningElement) {
@api similarBy;
relatedBoats;
boatId;
error;
// public
@api
get recordId() {
return this.boatId;
}
set recordId(value) {
// sets the boatId value
this.boatId = value;
// sets the boatId attribute
}
@wire(getSimilarBoats, { boatId: this.boatId, similarBy: '$similarBy' })
similarBoats({ error, data }) {
if (data) {
this.relatedBoats = data;
this.error = undefined;
} else if (error) {
this.relatedBoats = undefined;
this.error = error;
}
}
get getTitle() {
return 'Similar boats by ' + this.similarBy;
}
get noBoats() {
return !(this.relatedBoats && this.relatedBoats.length > 0);
}
// Navigate to record page
openBoatDetailPage(event) {
this[NavigationMixin.Navigate]({
type: 'standard__recordPage',
attributes: {
recordId: this.boatId,
objectApiName: BOAT_OBJECT,
actionName: 'view'
},
});
}
}
你的问题是你正在使用 { boatId: this.boatId, ...
,而你需要使用 { boatId: '$boatId', ...
。
除了 Joe 指出的内容之外,您还需要将以下行添加到您的 recordId setter 以便为该属性设置正确的值(如注释所示)。
// sets the boatId attribute
this.setAttribute('boatId', value);