Как отфильтровать массив с помощью хуков? - PullRequest
0 голосов
/ 13 июня 2019

В настоящее время я работаю над функцией на основе классов. Попытка преобразовать класс в функцию без сохранения состояния с последующим рефакторингом моего кода для каждого обработчика событий из this.SetState в useState (в данном случае setMovies).

Это мой код (частичный код):

const Movies = () => {
    const [movies, setMovies] = useState(getMovies());
    const [disabled, setDisabled] = useState(true);
    const [pageSize, setPageSize] = useState(4);

const sortBy = sortType => {
    setMovies(movies.filter(sortType));
    setDisabled(false);
    // this.setState({
    //     movies: this.state.movies.sort(sortType),
    //     isDisabled: false,
    // });
};

похоже, что это состояние невозможно отфильтровать. Я могу изменить на логическое значение, но не могу отфильтровать массив. Есть ли способ фильтрации с помощью крючков?

Заранее спасибо.

Ответы [ 2 ]

1 голос
/ 13 июня 2019

Ничего не меняется ...

const List = () => {
    const [items, setItems] = useState([1, 2, 3, 4, 5, 6])
    const filterEvenResults = setItems(items.filter(x => x % 2))
    return (
        <div>
            {
                items.map(item => <p key={item}>{item}</p>)
            }
            <button onClick={filterEvenResults}>Filter</button>
        </div>
    )
}
0 голосов
/ 13 июня 2019

В любом случае решил забыть удалить это, потому что он не будет работать внутри функции без сохранения состояния.

...