2016-11-24 66 views
4

组件我有一个组件,我用酶试验,看起来像下面这样:酶不是通过寻找道具

<RichTextEditor name="name" onChange={[Function]} value="<p>what</p>" focus={false}> 
    <div className="rich-text-editor"> 
    <div className="btn-group" role="group"> 
    <StyleButton active={false} icon="fa-list-ul" label="UL" onToggle={[Function]} style="unordered-list-item"> 
    // ... 

我试图检测StyleButton成分的存在有像这样:

mount(<RichTextEditor />).find('StyleButton[label="UL"]') 

但是没有组件被返回。我可以通过搜索字符串“StyleButton”找到所有的StyleButton,但是我无法通过属性找到,包括仅仅通过使用属性选择器。

我粘贴的第一个代码块来自安装RichTextEditor的调试输出,所以StyleButton肯定存在。

任何想法?

谢谢。

回答

11

在文档没有选择与道具混合组件的名称:

  • CSS选择器
  • 组件构造
  • 组件显示名称
  • 对象属性选择

您可以使用findWhere

wrapper.findWhere(n => n.name() === 'StyleButton' && n.prop('label') === 'UL') 
+0

哦,你是对的。我混淆了组件+属性的标签+属性css选择器。我认为我在其他源代码中看到过类似的情况,但并不完全如此。谢谢。 – whalabi

+1

你可以结合'find'和'findWhere':'wrapper.find('StyleButton')。findWhere(n => n.prop('label')==='UL')' – romanlv