【问题标题】:How can we make sure other <ListItem> components as collapsible when one <ListItem> component get expands under <List> react material ui component?当一个 <ListItem> 组件在 <List> react material ui 组件下展开时,我们如何确保其他 <ListItem> 组件可折叠?
【发布时间】:2019-07-03 03:43:38
【问题描述】:

在当前工作的应用程序中,我们使用react material ui 组件来设计网页。在一种情况下,我们一直在使用 &lt;List&gt; 材料 UI 组件,如 https://material-ui.com/demos/lists/ 中所建议的那样,根据应用程序要求进行了少量更改。场景如下

现在,当我点击 CountryOne listiteam 时,所有三个 listitem 都将展开如下。

但这不应该发生。实际预期是当前点击的列表项应该展开,其他两个列表项应该只处于可折叠状态。

我只在迭代对象列表时尝试了一些带有地图索引的东西,但没有成功。请在这里查看我的示例代码https://stackblitz.com/edit/react-oxmu9x

【问题讨论】:

    标签: reactjs material-ui


    【解决方案1】:

    根据您的示例,这背后的原因是所有三个国家都使用相同的开放属性。尝试这样做,看看它是否有效:

    this.state = { open: {countryOne: false, countryTwo: false, countryThree: false}
    
    handleCollapse = (val) => { this.setState(state => ({
          open: Object.assign({}, state.open, {[val]: !state.open[val]})
        }))}
    
        // countries' ListItem onClick
    
    
        onClick={() => handleCollapse('countryOne')}
        onClick={() => handleCollapse('countryTwo')}
        onClick={() => handleCollapse('countryThree')}
    

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-04-01
    • 2016-10-12
    • 2017-10-03
    • 2021-04-26
    • 2015-10-28
    • 2017-07-27
    • 1970-01-01
    相关资源
    最近更新 更多