Как отсортировать с помощью filter() свойство компонента?

131
26 октября 2019, 00:10
import React, { Component } from 'react';
import {render} from 'react-dom';
import ItemsList from "../src/components/App"

const propsValues = {
  title: "Список смартфонов",
  items: [
          "HTC U Ultra", 
          "iPhone 7", 
          "Google Pixel", 
          "Hawei P9", 
          "Meizu Pro 6",
          "iPhone 7",  
          "Asus Zenfone 3"
  ]
};

render(<ItemsList data={propsValues} />, document.getElementById('root'));

сам файл компонентов

import React, { Component } from 'react';
class Item extends React.Component {
  render() {
      return <li>{this.props.name}</li>;
  }
}
class ItemsList extends React.Component {
  render() {
      return(
          <div>         
              <h2>{this.props.data.title}</h2>
              <ul>
              {
                  this.props.data.items.map(function(item){                       
                      return <Item key={item} name={item} />
                  })
              }
              </ul>
          </div>);
  }
}

 export default ItemsList;

Как с помощью filter отсортировать в компоненте списка нужное? инструкция типа

this.props.data.items.filter(function(item){                       
                      return <Item key={item} name={item === "iPhone 7"} />
                  })

не работает

Answer 1

можно сделать следующим образом:

render(){
    let goodItems = this.props.data.items.filter(item => item === "iPhone 7");
    return(
      <div>         
          <h2>{this.props.data.title}</h2>
          <ul>
          {
              goodItems.map(item => <Item key={item} name={item} />)
          }
          </ul>
      </div>
    );
}
Answer 2
render() {
  const { data: { items, title }} = this.props;
  return(
    <div>         
      <h2>{title}</h2>
      <ul>
        {items.map((item, i) => item === "iPhone 7" && <Item key={`item-${i}`} name={item} />)}
      </ul>
    </div>
  );
}
READ ALSO
Ошибка при запуске теста

Ошибка при запуске теста

Запускаю тест и выдает ошибку

107
Получить код страны: JS +API

Получить код страны: JS +API

При заходе пользователя на сайт мне не нужно получить значение кода его страны (из двух букв, в ISO 3166-1 Alpha 2 формате)К моему сожалению, РНР для...

224
Замена определенного символа

Замена определенного символа

Пользователь прописывает букву "а", а получает "А"При этом это должно работать только на этот символ

115
Gulp build ошибка при сборке

Gulp build ошибка при сборке

Собственно после запуска команды gulp build , в консоле ошибка:

127