我简单地尝试在react-test-renderer源代码中找到它,但无法找到它。
回想一下,在React中,值为undefined
的组件元素属性不会在DOM中呈现。即,给定bat = undefined
和<Foo bar={bat} />
,bar
属性不会出现在生成的HTML中。
我假设它是预期的行为,但我很困惑为什么,当一个可选的组件属性出现在Jest快照的JSON树中时 - 除非快照只是确认属性未指定(ws-automation-id
是一个可选的组件属性,没有定义defaultProps
条目):
exports[`the <TextButton/> component should use the specified class names 1`] = `
<button
className="gc-icon test-class1 test-class2"
onClick={[Function]}
ws-automation-id={undefined}
>
Button Text
</button>
`;
特定
test('should use the specified class names', () => {
const tree = create(<TextButton buttonText="Button Text" onClick={null} classNames={['test-class1', 'test-class2']} />).toJSON()
expect(tree).toMatchSnapshot()
})
这是预料之中的。
从本质上讲,这个软件包可以轻松获取由React DOM或React Native组件呈现的平台视图层次结构(类似于DOM树)的快照,而无需使用浏览器 - React Test Renderer
它不是您从浏览器检查中看到的DOM树,而是表示类似的javascript对象。
我忽略了发布原始帖子时使用的版本。这个问题已得到修复,但目前还不清楚确切的版本。