【问题标题】:How to change icon position of semantic-ui react Accordion?如何更改语义-ui反应手风琴的图标位置?
【发布时间】:2019-06-21 00:22:21
【问题描述】:

semantic-ui React page 有一个 Accordion 示例,其图标位于右侧。

但代码并没有解释这是如何完成的。 Accordion 组件没有图标道具来更改图标或速记图标的位置。

我想以简写方式更改 Semantic-ui React Accordion 的图标和图标位置,即无需手动维护组件状态 eg:<Accordion defaultActiveIndex={0} panels={panels} />

有没有办法做到这一点?

【问题讨论】:

    标签: reactjs accordion semantic-ui semantic-ui-react


    【解决方案1】:

    有一个类似的问题,我想通过速记摆脱图标,它需要查看源代码才能解决。如果为 Accordion.Title 设置了 content 属性(或者在您的情况下为速记中的 title 属性),则默认添加下拉图标,如果没有,则可以使用 children 属性添加图标。

    如果你想控制图标(使用来自反应站点的example作为起点):

    const panels = [
      {
        key: 'what-is-dog',
        title: {
          children:(
           /*add your icon and/or styles here*/
            <span>
              <Icon name='random'/>
            </span>
          )
        },
       . . .
      },
    ]
    

    注意title: 'some value'与设置内容相同。

    【讨论】:

    • 一直在绞尽脑汁试图解决这个问题。非常有帮助;谢谢。
    【解决方案2】:

    只需将&lt;Icon /&gt; 组件的位置切换到文本之后。即。

     <Accordion>
        <Accordion.Title active={activeIndex === 0} index={0} onClick={this.handleClick}>
          <Icon name='dropdown' />
          What is a dog?
        </Accordion.Title>
        <Accordion.Content active={activeIndex === 0}>
          <p>
            A dog is a type of domesticated animal. Known for its loyalty and 
            faithfulness, it can
            be found as a welcome guest in many households across the world.
          </p>
        </Accordion.Content>
    

    在左边,但下面显示右边的图标:

     <Accordion>
        <Accordion.Title active={activeIndex === 0} index={0} onClick={this.handleClick}>
            What is a dog?
           <Icon name='dropdown' />
        </Accordion.Title>
        <Accordion.Content active={activeIndex === 0}>
          <p>
            A dog is a type of domesticated animal. Known for its loyalty and 
             faithfulness, it can
            be found as a welcome guest in many households across the world.
          </p>
        </Accordion.Content>
    

    另外,如果你想给Icon留出空间,你也可以将样式传递给prop,例如:

    <Icon name='dropdown' style={{"marginLeft": '2em' }} />
    

    【讨论】:

    • 感谢您的回复。我想用速记来做
    • 嗨@ben,我做了一些进一步的研究,我发现你可以将styledvertical 传递给速记组件。如果你愿意,你也可以嵌套你的内容,比如content:( &lt;Fragment&gt;&lt;Label color='blue' content={faker.lorem.sentence()} /&gt; &lt;Icon /&gt; &lt;/Fragment);,但这只会添加一个图标。最后,您可以通过传递&lt;Accordion as={Menu} /&gt; 来更改根组件,但恐怕它并不能完全解决您的问题
    • 感谢@LukeT 的所有建议!你已经很足智多谋了。恐怕我已经尝试过第二个和第三个建议,但作为列表。第二个是最好的,但仍然找不到如何删除默认添加的克拉:(
    • 抱歉,我无法提供更多帮助。不过我同意你的观点,很奇怪他们在他们的文档中发布了一个示例,根本没有提到图标定位。
    猜你喜欢
    • 2019-09-15
    • 1970-01-01
    • 2016-06-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-09-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多