Реактивные крючки, эквивалентные флюсовому контейнеру - PullRequest
0 голосов
/ 21 апреля 2020

Рефакторинг компонента класса React, ранее использовавшего Flux, вместо этого использовал React Hooks.

Предыдущий компонент использовал getStores () и calcState () для подписки на объекты хранилища и обновления локального состояния.

Есть ли способ реорганизовать компонент класса в функциональный компонент React, используя React Hooks (useState, useEffect, et c?), Чтобы получить ту же подписку для хранения объектов?

пример компонента flux:

class exampleComponent extends React.Component {
  static getStores() {
    return [storeOne];
  }

  static calculateState() {
    const someData = storeOne.getState();

    return {
      someData
    };
  }
}

цель (что-то вроде этого, которая подписывается на магазин):

function exampleComponent(props) {
  const [storeData] = useState(storeOne.getState());

  return (
    <someElement
      data={storeData}
    >
    </someElement>
  );
}

Примечание: попытался использовать useState, как указано выше, но он не подписывается на storeOne , поэтому Компонент не выполняет повторную визуализацию при изменении состояния storeOne . Я хотел бы иметь возможность каким-либо образом подписаться на изменения в storeOne , чтобы компонент повторно отображался при наличии изменений в storeOne .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...