2016-08-26 1 views
0

В этом переполнении стеки вопроса:Как проверить тип (т.е. экземпляр) компонента Redux Connect-ed?

Comparing two components - is Component X an instance of Component A

Дэн Абрамов объясняет правильный способ определения, является ли child переменным является экземпляром Foo Реагировать класс. Поскольку return <Foo /> фактически не возвращает экземпляр Foo, вы не можете просто использовать instanceof; вместо этого вы должны сделать:

child.type === Foo.type 

Это замечательно, за исключением того, что я использую собственную библиотеку Дэна, Redux и Redux инструктирует вас обернуть (в магазине с помощью) компонентов с его connect функция:

connect((a) => a)(
    class Foo extends React.Component { //... 
) 

к сожалению, делать это меняет .type элементов Foo к самой connect функции:

const x = <Foo />; 
console.log(x.type); // connect 

Итак, мой вопрос, я есть ли какой-нибудь способ, который я могу выяснить, из какого класса React появился элемент, если класс React, о котором идет речь, использовал Redux's connect?

ответ

1

Если вы пройдете withRef = true в connect вариантов, согласно documentation, вы можете позже использовать x.getWrappedInstance().type, чтобы выяснить, что React класс элемент пришел.

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