Удаление и добавление элемента в массив в браузере React Freezes - PullRequest
0 голосов
/ 19 февраля 2019

Я использую реагирование и использую функцию lodash для добавления и удаления элементов массива, но всякий раз, когда я добавляю или удаляю массив, браузер немного останавливается или замедляется.

посмотрите на app: https://coindb.netlify.com Github Repo : https://github.com/solankivj94/hexteria

Я меняю ключи на карте массива с ключей индекса на уникальный ключ.но результат тот же

addCoin = (key) => {
    let maxFav = 6;
    let favorites = [ ...this.state.fav ];

    if (favorites.length < maxFav && !_.includes(this.state.fav, key)) {
        favorites.push(key);
        this.setState({ fav: favorites });
    }
    // console.log(_.includes(this.state.fav, key));
};

removeCoin = (key) => {
    let favorites = [ ...this.state.fav ];
    this.setState({ fav: _.pull(favorites, key) });
    // console.log('REmove coiin');
};

1 Ответ

0 голосов
/ 19 февраля 2019

In src/Components/Setting/CoinTile.js

Изменить это

<Tile onClick={clickCoinHandler(props.topSection, props.coinKey, props.addCoin, props.removeCoin)}>

На Это

<Tile onClick={()=>{clickCoinHandler(props.topSection, props.coinKey, props.addCoin, props.removeCoin)}}>

Также изменить функцию clickCoinHandler

const clickCoinHandler = (topSection, coinKey, addCoin, removeCoin) => {
    return topSection ? removeCoin(coinKey) : addCoin(coinKey);
};

Дайте мне знать, если это работает

...