У меня есть следующий функциональный компонент React, который принимает имя как пропеллер
const Name = ({ name }) => <h1>{name}</h1>;
Name.propTypes = {
name: PropTypes.string.isRequired
}
И мой тест выглядит следующим образом
describe("<Name />", () => {
it("accepts name as a prop", () => {
const wrapper = shallow(<Name name="Monkey D Luffy"/>);
expect(wrapper.instance().props.name).toBe("Monkey D Luffy");
})
})
Это возвращает следующую ошибку
TypeError: Невозможно прочитать свойство 'props' с нулевым значением
Update
Я вызываю компонент Name следующим образом
class Person extends React.Component {
state = {name: "Name here"}
render () {
return <div><Name name={this.state.name} /></div>
}
}
Я обнаружил, что вызов instance()
для компонента без состояния не будет работать с реакцией 16. * Я не могу использовать wrapper.prop()
в моем случае, так как он возвращает только реквизиты корневого узла
Почему этовозвращать нуль при вызове функции экземпляра для визуализированного компонента и как мне проверить реквизиты, переданные в компонент без состояния?
Оригинальный вопрос
Почему он возвращает ноль при вызове экземплярафункция на визуализируемом компоненте