require ('file') не вызывается при втором вызове - реагирует - PullRequest
0 голосов
/ 19 февраля 2019

У меня есть компонент, который использует файл, который должен быть указан во время componentDidMount.

У меня есть две страницы, которые используют этот компонент.Он отлично работает на первой странице, но как только я переключаюсь на другую страницу, он вообще не вызывается.И это не зависит от требуемой страницы: она всегда работает в первый раз, но не во второй раз.

Вот код:

componentDidMount() {
   try {
      require('./data');
    } catch (e) {
      // Do nothing.
      // No error, even on the second time
    }
  }

Вызывается componentDidMount (сделалнекоторый console.log, чтобы убедиться), и файл найден (также проверенный на console.log).

Вот файл data.js:

console.log(window); // display something the first time, but nothing happens on the second time

if (typeof window !== 'undefined') {
  const d3 = require('d3');
  const Datamap = require('datamaps');

  d3.selection.prototype.moveToFront = function() {
    return this.each(function() {
      this.parentNode.appendChild(this);
    });
  };

  (function() { /* some code */ } )
}

Любая идея на этот счетодин ?Одно из моих предположений, если оно не было размонтировано и перемонтировано правильно, но не представляю, как я могу это проверить или исправить

...