2015-03-22 3 views
1

Что-то странное происходит с react.jsTop-Level API.React.isValidElement false negative

Это отрывок из моего mocha теста:

it.only('should identify a ReactElement', function() { 
    var component = ReactTestUtils.renderIntoDocument(
    <SomeComponent value={data.value} label={data.label} /> 
); 

    console.log(React.isValidElement(component)); 
    expect(React.isValidElement(component), 'to be truthy'); 
    expect(true, 'to be truthy'); 
}); 

Проблема, isValidElement возвращает ложь ... который не делает много смысла, так как я только что создал этот проклятый элемент.

Любой ключ?

ответ

3

ReactTestUtils.renderIntoDocument(element) принимает ReactElement и возвращает ReactComponent.

React.isValidElement(element) вернется только в том случае, если element является ReactElement.

В вашем случае, <SomeComponent value={data.value} label={data.label} /> является ReactElement и component является ReactComponent.

Here's a guide по терминологии, которая может вам пригодиться.

+1

Вы вид правой (см здесь https://github.com/facebook/react/issues/3479#issuecomment-84706205) Но так как они устарели 'isValidComponent', теперь неясно, как я могу определить эти элементы – domokun