javascript - 如何通过Enzyme获取依赖组件元素?

标签 javascript reactjs enzyme

我正在基于我的 AutoComplete 组件创建一个 React 组件 (UserAutocomplete)。

我的AutoComplete组件在哪里:

render(
   <input type='text' class='autocomplete'/>
);

我的UserAutoComplete是:

import Autocomplete from './autocomplete';

render(
    <Autocomplete {...this.props} />
);

并使用Enzyme + Jest创建测试,但是当我使用find函数获得input时,正在返回

it('test defaultValue prop', () => {
    const wrapper = shallow(
        <UserAutocomplete/>
    );

    console.log(wrapper.find('input')); // returning null
});

如果它在子组件中,我如何获取此输入?

最佳答案

shallow渲染不会向下渲染超过一级(因此,)。因此,您可以搜索 AutoComplete 组件,而不是 input:

it('test defaultValue prop', () => {
    const wrapper = shallow(
        <UserAutocomplete/>
    );

    console.log(wrapper.find('AutoComplete')); // returning null
});

如果你想渲染到更深度,你应该使用mount相反。

关于javascript - 如何通过Enzyme获取依赖组件元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41102861/

相关文章:

javascript - 变量已经定义

javascript - 为什么 useEffect 在状态没有改变的情况下不调用回调函数?

node.js - React 16 不适用于 enzyme

reactjs - React Typescript 面临 enzyme 的问题

javascript - yarn 工作区和 lerna 导致无效的 Hook 调用

javascript - "Navbar refers to a value, but is being used as a type here"在测试时尝试呈现我的组件的浅拷贝

javascript - Javascript 类中全局变量的范围

javascript - Bootstrap 日期时间选择器步进不起作用

javascript - 如何将 Vue .prototype 迁移到单独的文件

javascript - Material UI GridTile 高度