Как решить Не используйте расширения прототипов функции Ember - PullRequest
0 голосов
/ 07 июня 2018

Я получил ошибку Don't use Ember's function prototype extensions ember/no-function-prototype-extensions

, и моя строка кода выглядит так:

import JSONAPIAdapter from 'ember-data/adapters/json-api';
import $ from 'jquery';
import config from 'appName/config/environment';

export default JSONAPIAdapter.extend({
  shouldReloadAll: function() {
    return false;
  },

  shouldBackgroundReloadRecord: function() {
    return true;
  },

  namespace: 'api/v1',
  host: window.location.origin,
  coalesceFindRequests: true,
  headers: function() {
    // Reference https://github.com/DavyJonesLocker/ember-appkit-rails/issues/220
    // Only set the X-CSRF-TOKEN in staging or production, since API will only look for a CSRF token on those environments
    let csrfToken;

    if (config.environment === 'staging' || config.environment === 'production') {
      csrfToken = $('meta[name="csrf-token"]').attr('content');
    }

    let authorizationToken = 'Token ' + this.currentSession.get('token');

    return {
      'X-CSRF-TOKEN':  csrfToken,
      'Authorization': authorizationToken
    };
  }.property().volatile(),

  handleResponse(status, headers, payload, requestData) {
    if (this.isInvalid(status, headers, payload)) {
      if (payload && typeof payload === 'object' && payload.errors &&
      typeof payload.errors === 'object') {
        return payload.errors = [payload.errors];
      }
    }

    return this._super(status, headers, payload, requestData);
  }
});

Это была строка кода, на которую мой терминал ссылается .property().volatile(), У меня естьпосмотрел в гугле но я не смог найти похожие примеры для моей работы.Кстати, я обновил свою версию ember с 1.13.13 до 3.1.0, и именно поэтому я получил ошибку.

Пожалуйста, помогите мне

1 Ответ

0 голосов
/ 07 июня 2018

Ember's .property() устарело.

Вместо:

headers: function() {
  // ...
}.property().volatile(),

... do:

headers: computed(function () {
  // ...  
}).volatile(),

Также добавьте вычисленный импорт вверху:

import { computed } from '@ember/object';

Когда вы видите эти ошибки eslint, выполните поиск в Google по названию правила, в данном случае ember/no-function-prototype-extensions.Вы найдете описание ошибки и как ее исправить:

https://github.com/ember-cli/eslint-plugin-ember/blob/master/docs/rules/no-function-prototype-extensions.md

...