Вы можете выбрать значение из массива, используя index
, а затем отобразить свойства, которые вы хотите отобразить в пользовательском интерфейсе,
Здесь у меня есть свойство в состоянии с именем index
, которое имеет значение по умолчанию 0
, теперь на основе index
мы выбираем элемент из массива items
и отображаем его значение
class App extends React.Component {
constructor(props) {
super(props);
this.state = {
items: [],
isLoaded: false,
index: 0
};
this.handleIndex = this.handleIndex.bind(this)
}
handleIndex(event){
this.setState({index: event.target.value})
}
componentDidMount() {
fetch("https://jsonplaceholder.typicode.com/users")
.then(res => res.json())
.then(json => {
this.setState({
isLoaded: true,
items: json
});
});
}
render() {
var { isLoaded, items, index } = this.state;
const selected = items [index] || items[0]
if (!isLoaded) {
return <div>Loading...</div>;
} else {
return (
<div className="App">
<ul>
<li key={selected.id}>
Name: {selected.name} | Email: {selected.email}
</li>
</ul>
<input type='number' onChange={(e)=>this.handleIndex(e)} placeholder='Enter a valid index'/>
</div>
);
}
}
}
const rootElement = document.getElementById("root");
ReactDOM.render(<App />, rootElement);
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/16.6.3/umd/react.production.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/react-dom/16.6.3/umd/react-dom.production.min.js"></script>
<body>
<div id='root'/>
</body>
Если вам нужно найти index
на основе определенного условия, тогда вам нужно использовать findIndex
или также вы можете использовать find
дляполучить требуемый элемент из массива и затем отобразить значения, in case of multiple element can fulfill the condition then you can filter the values first and then
map` поверх них