LWC superbadge step 14 испытание

Я нахожусь на шаге 14 супербэджа LWC и получаю следующую ошибку: Мы не можем найти предоставленную для проводного сервиса функцию SimilarBoats () с правильно используемым свойством data в файле JavaScript компонента 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'
            },
        });
    }

}

person M.S    schedule 07.07.2020    source источник


Ответы (2)


Ваша проблема в том, что вы используете { boatId: this.boatId, ... , когда вам нужно использовать { boatId: '$boatId', ....

person Joe Stone    schedule 07.07.2020

В дополнение к тому, что отметил Джо, вам необходимо добавить следующую строку в свой установщик recordId, чтобы установить правильное значение для атрибута (как предполагает комментарий).

// sets the boatId attribute
this.setAttribute('boatId', value);
person Kévin Tchaka    schedule 28.08.2020