Javascript 为什么赢了';当生成的HTML看起来像find时,我不能找到我的元素吗?

Javascript 为什么赢了';当生成的HTML看起来像find时,我不能找到我的元素吗?,javascript,reactjs,enzyme,Javascript,Reactjs,Enzyme,给定此React测试代码: const A = props => <input { ...props } />; const Component = () => ( <A className="foo" /> ); const wrapper = shallow(<Component />); console.log( wrapper.html(), wrapper.find('input').length ); 在您的示例中,此输入是要

给定此React测试代码:

const A = props => <input { ...props } />;
const Component = () => (
   <A className="foo" />
);
const wrapper = shallow(<Component />);

console.log( wrapper.html(), wrapper.find('input').length );

在您的示例中,此输入是要渲染的第二个组件级别<代码>浅层仅呈现一个组件,以便包装器具有以下结构:

如果要呈现此输入,应使用
mount()
const wrapper=shallow().shallow()
以渲染两级组件。在您的情况下,如果您有复杂的结构和多个级别的组件,我将使用
mount()

const组件=()=>(
);
const wrapper=mount()
log(wrapper.html(),wrapper.find('input').length);

是否尝试了
wrapper.find(input).length
?@MukeshPrajapati我发现该评论可疑,但还是运行了它,并得到了预期收到的错误:
未定义输入
。我不理解你的评论。@YanickRochon现在没有任何平台来运行你的测试用例。只是想尝试不加引号。那么,递归调用
shall
?该示例非常基本,因为实际代码可能具有数量可变的嵌套组件。我以前从未使用过酶。因此,如果您想进入最后一级深度,则需要使用
mount()
<input class="foo"/> 0
"enzyme": "^3.10.0",
"enzyme-adapter-react-16": "^1.14.0",
"react": "^16.9.0",
const Component = () => (
   <A className="foo" />
);
const wrapper = mount(<Component />)

console.log( wrapper.html(), wrapper.find('input').length );