У меня возникла проблема с компонентами более высокого порядка и типом потока.
В частности, у нас есть компонент, у которого есть требуемая опора - назовем его requiredProp
.Когда мы обертываем этот компонент компонентом высшего порядка (HOC), мы ожидаем, что обернутый компонент сохранит «обязательность» requiredProp
.
Мы проверяем это поведение на 3 HOC: (1) react-redux
connect
, (2) @material-ui
withStyles
и (3) пользовательский HOC.Действительно, это поведение сохраняется.
Однако, когда мы обертываем компонент любой комбинацией этих 3 HOC, «обязательность» requiredProp
исчезает.
В частности, когда мы переносимнаш компонент с connect
, затем withStyles
, мы получаем ошибку.Когда мы обертываем наш компонент с помощью withStyles
, а затем connect
, поток больше не возвращает ошибку, если не указано requiredProp
, что является неправильным.Наконец, когда мы заключаем наш пользовательский компонент в connect
, затем withStyles
и, наконец, в наш собственный HOC, поток также больше не возвращает ошибку, если requiredProp
не предоставлено.
Я продемонстрировал этокод в этом хранилище: https://github.com/jmtoung/flow-hoc-issue