Мой React Component рендерит дважды из-за строгого режима - PullRequest
1 голос
/ 16 апреля 2020

Мой компонент React рендерит дважды. Итак, я решил сделать построчную отладку и проблема здесь

 if ( workInProgress.mode & StrictMode) {
        instance.render();
      }

React-dom.development. js

Это из-за строгого режима? можно ли это отключить? Что такое строгий режим? Мне это нужно?

Ответы [ 2 ]

0 голосов
/ 16 апреля 2020

Вы не можете «удалить» (или отключить) строгий режим, используя синтаксис модуля ES6. Вы можете использовать Common JS require(), чтобы отключить строгий режим. Как указывает @Haris, единственный способ решить эту проблему - буквально отключить строгий режим. Поскольку это происходит только в разработке, вот как сделать это в производстве:

const express = require('express');
const path = require('path');
const app = express();
app.use(express.static(path.join(__dirname, 'build')));
app.get('/', function(req, res) {
  res.sendFile(path.join(__dirname, 'build', 'index.html'));
});
app.listen(9000);
0 голосов
/ 16 апреля 2020

Да, вы должны удалить Строгий режим, так как

Строгий режим не может автоматически определять побочные эффекты для вас, но это может помочь вам обнаружить их, сделав их немного более детерминированность c. Это делается путем преднамеренного двойного вызова следующих функций: методы конструктора компонента класса, метода render и shouldComponentUpdate.

...