Foundation手风琴无法在React中使用

时间:2019-03-12 22:21:04

标签: javascript reactjs zurb-foundation

我在我的react组件中使用了基础手风琴。

因此,如果使组件呈现静态HTML,则此代码有效,但是如果我通过循环进行操作,则手风琴无法单击。

UL React代码:

return (
<ul className="accordion" data-accordion data-allow-all-closed>
    this.state.test.map((data,index) => {
     return (<LI id={data.ID} value={data.Intro} />)
   }
</ul>
)

LI代码

return (
            <li className="accordion-item" data-accordion-item  key={this.props.id}>
                <a href="#" className="accordion-title">{this.props.value}</a>
                <div className="accordion-content" data-tab-content>
                    <strong>{this.props.value}</strong>
                    <p>Test</p>
                </div>
            </li>
        )

ComponentDidMount

new Accordion($(".accordion"), {
            slideSpeed: 500,
            multiExpand: true
        });
   fetch("URL")
            .then(res => res.json())
            .then(
                (result) => {
                    this.setState ({
                        isLoaded: true,
                        items : [
                            { ID: 1, Intro: "Label sdf1" },
                            { ID: 2, Intro: "Label 2" },
                            { ID: 3, Intro: "Label 3" }
                        ]
                    })
                },
                (error) => {
                    this.setState({
                        isLoaded: true,
                        error
                    });
                }
            )

建设者

构造函数(道具){

     super(props);
       this.state = {
           alerts:[],
           items:[],

       }

 }

我已编辑@Pavelcode here以复制我的问题

1 个答案:

答案 0 :(得分:1)

您的LI组件的标记已损坏,<a>没有结束标记。

enter image description here

应为<a href="#" className="accordion-title">{this.props.value}</a>

编辑:

解决方案在此沙箱中:https://codesandbox.io/s/m76m5376ly?fontsize=14

请注意,在与React一起使用时,必须以文档中描述的多种方式之一来初始化Foundation。在此示例中,我使用componentDidMount来初始化手风琴。