gpt4 book ai didi

reactjs - 如何在reactjs中渲染列表项

转载 作者:行者123 更新时间:2023-12-03 14:09:11 25 4
gpt4 key购买 nike

我正在使用List垂直渲染数据。文档建议了一种硬编码数据的方法,但我在数组中有数据。

文档有这个例子:

<MobileTearSheet>
<List>
<ListItem primaryText="Inbox" leftIcon={<ContentInbox />} />
<ListItem primaryText="Starred" leftIcon={<ActionGrade />} />
<ListItem primaryText="Sent mail" leftIcon={<ContentSend />} />
<ListItem primaryText="Drafts" leftIcon={<ContentDrafts />} />
<ListItem primaryText="Inbox" leftIcon={<ContentInbox />} />
</List>
<Divider />
<List>
<ListItem primaryText="All mail" rightIcon={<ActionInfo />} />
<ListItem primaryText="Trash" rightIcon={<ActionInfo />} />
<ListItem primaryText="Spam" rightIcon={<ActionInfo />} />
<ListItem primaryText="Follow up" rightIcon={<ActionInfo />} />
</List>
</MobileTearSheet>

我有 todos 数组,我想在 ListItem 中渲染它。谁能建议我该怎么做?

this.state = {
open: false,
todos: [],
notetext: ""
};

我正在数组中添加元素,如下所示:

todos.push({
id: todos.length,
text: this.state.notetext,
completed: false
});

最佳答案

使用 map 迭代 todos 数组,然后为 array 的每个项目创建一个 ListItem 元素.

这样写:

_renderTodos(){
return this.state.todos.map(el => {
return <ListItem primaryText={el.text} key={el.id}/>
})
}

render(){
return(
<MobileTearSheet>
<List>
{this._renderTodos()}
</List>
</MobileTearSheet>
)
}

检查此片段:

class App extends React.Component{

constructor(){
super();
this.state = {
a: [1,2,3,4]
}
}

_renderItems(){
return this.state.a.map(el => <p>{el}</p>)
}

render(){
return(
<div>
{this._renderItems()}
</div>
)
}
}

ReactDOM.render(<App/>, document.getElementById('app'))
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/15.1.0/react.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/15.1.0/react-dom.min.js"></script>

<div id='app'/>

关于reactjs - 如何在reactjs中渲染列表项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44527343/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com