angular универсальный, d3, ERROR ReferenceError: выборка не определена - PullRequest
0 голосов
/ 04 февраля 2020

Эта проблема также возникает в angular universal:

enter image description here

Я пытаюсь install node-fetch-polyfill и импортирую это.

//npm install node-fetch-polyfill

import * as fetch from "node-fetch-polyfill"; 

ngOnInit() {
    if (typeof fetch !== 'function') {
      (global as any).fetch = fetch;
    }
}

Но все равно это не работает, я не использую fetch непосредственно в своем коде.

1 Ответ

0 голосов
/ 04 февраля 2020

Документация гласила:

Легковесный модуль, который переводит window.fetch в Node.js

Поэтому я предполагаю, что вы хотите использовать выборку только в сервер, поэтому вы должны проверить, находитесь ли вы на сервере или на клиенте. Вот так например:

if (typeof window !== 'undefined' && typeof fetch !== 'function') {
  (global as any).fetch = fetch;
}

НО! Лучше всего, если вы используете PLATFORM_ID!

import { PLATFORM_ID, Inject } from '@angular/core';
import { isPlatformBrowser} from '@angular/common';
export class MyComponent {
    isBrowser: boolean;
    constructor(
        @Inject(PLATFORM_ID) platformId: string) {
            this.isBrowser = isPlatformBrowser(platformId);
    }
    ngOnInit() {
       if (!this.isBrowser && typeof fetch !== 'function') {
        ...
     }
...