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);