Утечка памяти в приложении BACKBone, вызванном состоянием и моделямиJavascript

Форум по Javascript
Ответить
Anonymous
 Утечка памяти в приложении BACKBone, вызванном состоянием и моделями

Сообщение Anonymous »

I have a big BackBone + ReactJs application that renders a list of assets, each asset is a Backbone model, and the whole array of rendered assets and other variables used in the view get stored inside the state of a React component, let's call it main-component
This React component manages the data and then gives it as props to another child component, and Этот дочерний компонент отдает от реагирования базовый компонент.

Код: Выделить всё

  import { useEffect, useState } from 'react';
import _ from 'lodash';

const useSyncedData = ({
source,
mapState = (data) => ({ ...data }),
listenTo = 'update refresh',
useDebounce = true,
onMount = () => {},
onUnmount = () => {},
onTrigger = () => {},
}) => {
const [localData, setLocalData] = useState(mapState(source));
let isListening = true;

let updateState = () => {
if (isListening) {
setLocalData(mapState(source));
onTrigger();
}
};

if (useDebounce) {
updateState = _.debounce(updateState);
}

useEffect(() => {
const eventList = Array.isArray(listenTo) ? listenTo.join(' ') : listenTo;
source.on(eventList, updateState);
onMount();

return () => {
isListening = false;
source.off(eventList, updateState);
onUnmount();
};
}, [source]);

return localData;
};

export default useSyncedData;
Этот крюк называется 3-4 раза в основном компоненте для другого визуализации, но когда я выполняю действие, это Mounts/Menticents Main-Component я получаю эту ошибку:


Подробнее здесь: https://stackoverflow.com/questions/796 ... and-models
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Javascript»