【问题标题】:Is it possible to create ListItem's attribute?是否可以创建 ListItem 的属性?
【发布时间】:2017-12-20 10:18:36
【问题描述】:

在Material UI中,ListItem在http://www.material-ui.com/#/components/list中说明

嵌套的 ListItem 是这样的,

<ListItem
    value={1}
    primaryText="Brendan Lim"
    leftAvatar={<Avatar src="images/ok-128.jpg" />}
    nestedItems={[
      <ListItem
        value={2}
        primaryText="Grace Ng"
        leftAvatar={<Avatar src="images/uxceo-128.jpg" />}
      />,
    ]}
  />

我的问题是,是否可以先创建一个 ListItem 标签,然后再插入nestedItems? 我正在寻找类似的东西

let item=<ListItem... />; item.addAttribute(nestedList, list);

非常感谢。

【问题讨论】:

  • nestedItems 来自哪里?它是作为道具传递的数组吗?您正在即时创建的东西?
  • 因为我的UI组件的关系是构建为树的,这意味着需要先创建listedItem,然后压入堆栈,当程序递归到叶子时,我可以知道最深的嵌套列表内容,只有这样我才能构建和插入嵌套列表。

标签: javascript reactjs material-ui


【解决方案1】:

我认为你可以有条件地渲染你的nestedItems:

<ListItem
    value={1}
    primaryText="Brendan Lim"
    leftAvatar={<Avatar src="images/ok-128.jpg" />}
    nestedItems={[
      {this.state.nestedItem && (<ListItem
        value={this.state.nestedItem.value}
        primaryText={this.state.nestedItem.text}
        leftAvatar={<Avatar src={this.state.nestedItem.avatarUrl} />}
      />)}
    ]}
  />

【讨论】:

  • 谢谢,但我的情况是我创建了一个没有nestedItems 及其内容的ListItem,因为起初我不知道它的内容。
  • 是的,我是这么理解的,{this.state.nestedItem &amp;&amp;(&lt;ListItem /&gt;)} 的意思是if this.state.nestedItem exists then display &lt;ListItem /&gt;, if not do nothing
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-06-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-06-19
  • 2019-08-07
相关资源
最近更新 更多