gpt4 book ai didi

reactjs - 在react js中重新排序列表元素

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

我想知道如何重新排序列表元素。就像你有一个元素 li 列表,并将最后一个元素放在第一个位置,就像第 10 个元素的索引将放置在 0 的索引中

React.render(   <div>
<li>1</li>
<li>2</li>
<li>3</li>
<li>4</li> //When an event fires, this item would go up to the first index </div>, document.getElementById('example') );

最佳答案

根据您对 Abdennour 答案的评论(您需要更新一个项目,无论其位置如何),您不能使用简单数字数组执行此类操作,您需要为您的值建立索引:

class MyList extends Component {

render() {
return(
<ul>
{this.props.items.map((item ,key) =>
<li key={key}> {item}</li>
)}
</ul>
)
}

}


class App extends React.Component{

constructor(props) {
this.state= {
listItems: [{id: 1, val: '1'}, {id: 2, val: '2'}, {id: 2, val: '2'}, {id: 3, val: '3'}]
};
}

reverse = () => {
this.setState({
listItems: this.state.listItems.reverse()
});
}

// You can ignore this, simple put some random value somewhere
// In your case this would be the function that changes the value of one of the items, should of course be NOT random
changeRandom = () => {
const index = Math.floor(Math.random() * this.state.listItems.length);
const newList = this.state.listItems.slice();
newList[index] = Math.floor(Math.random() * 10).toString();

this.setState({
listItems: newList
})
}

render() {
return (
<div>
<div>
<MyList items={this.state.listItems.map(item => item.val)} />
</div>
<div>
<button onClick={reverse}>Reverse</button>
</div>
<div>
<button onClick={changeRandom}>Random Change</button>
</div>

</div>

)
}
}

关于reactjs - 在react js中重新排序列表元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41905908/

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