Foundation Accordion不在React工作

问题描述 投票:0回答:1

我在反应组件中使用了基础手风琴。

因此,如果获取组件以呈现静态HTML,则此代码可以工作,但是,如果我通过循环执行此操作,则不能单击手风琴。

UL反应代码:

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>
)

l ICO的

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来复制我的问题

javascript reactjs zurb-foundation
1个回答
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来初始化手风琴。

© www.soinside.com 2019 - 2024. All rights reserved.