2017-02-09 2 views
0

Я создаю общий модальный компонент React для моего приложения для отображения различных вещей. Я бы хотел, чтобы он был достаточно гибким, чтобы отображать как простые HTML, так и интерактивные компоненты React.Хранение реактивного компонента в редукторе Redux?

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

Принял ли кто-нибудь такой подход для любого из предыдущих? Я не смог найти какие-либо примеры этого онлайн, поэтому я не уверен, что это плохая практика. Если да, есть ли другой способ, по которому вы предлагаете, это должно быть обработано?

ответ

1

Это может сработать, но я не думаю, что вам действительно нужно это делать. Вы не должны сохранять весь компонент в магазине. Сохраните только состояние, которое должно быть сериализуемым и передать их в качестве реквизита для компонента. Функция компонента render() позаботится о рендере.

Смотрите Справку из Redux:

Может ли я ставить функции, обещание или другие несериализуемые детали в моем магазине состоянии?

Настоятельно рекомендуется размещать в вашем магазине простые сериализуемые объекты, массивы и примитивы. Технически возможно вставить в хранилище несериализуемые элементы, но это может привести к невозможности сохранения и регидратации содержимого магазина, а также вмешательства в отладку во времени.

Если у вас все в порядке с такими функциями, как постоянство и отключение от поездки во времени, потенциально не работающие по назначению, то вы можете пригласить несериализуемые элементы в свой магазин Redux. В конечном счете, это ваше приложение, и как вы его реализуете, зависит от вас. Как и во многих других вещах о Redux, просто убедитесь, что вы понимаете, какие компромиссы задействованы.

http://redux.js.org/docs/faq/OrganizingState.html#can-i-put-functions-promises-or-other-non-serializable-items-in-my-store-state

Также вы можете прочитать обсуждение данной темы: https://github.com/reactjs/redux/issues/1793

+0

Спасибо за понимание. Я подумал, что должен быть лучший, более «редукционный» способ обработки. В соответствии с дискуссионным потоком сохранение статического идентификатора в хранилище, а затем создание универсального компоновщика компонентов - лучший подход. –

Смежные вопросы