Pull to refresh
0
0
Сергей @chaynikz

Пользователь

Send message
Определенно стоит! Я начал изучать React недавно по другому вашему переводу «Учебный курс по React», за который очень вам благодарен. И вот этот новый перевод по современным возможностям React будет очень кстати!

Порылся немного в интернете и вот что нашел по этому вопросу.


например, можно решить так:


this.setState(prevState => {
    prevState.dietaryDestrictions[name] = checked;
    return prevState;
});

но если глянуть в документацию по setState , то там говорится, что предыдущее состояние не должно быть мутировано. Значит нужно предварительно клонировать нужный нам объект. В инете нашлось такое вот решение:


this.setState(prevState => ({
    dietaryDestrictions: {
        ...prevState.dietaryDestrictions,
        [name]: checked
    }
}));

выглядит немножко странновато, но логика вроде понятна.


Я вот только так и не пойму, зачем здесь использовать именно функциональный setState.
Попробовал сделать без него, и вроде бы тоже все работает:


this.setState({
    dietaryDestrictions: {
        ...this.state.dietaryDestrictions,
        [name]: checked
    }
})

или даже так:


const dietaryDestrictions = this.state.dietaryDestrictions;
dietaryDestrictions[name] = checked;
this.setState({ dietaryDestrictions: dietaryDestrictions });

очень надеюсь, что кто-нибудь разъяснит всю эту ситуацию, как же все-таки делать правильно?

Там, где мы используем fetch, почему в этой строке


const {memes} = response.data

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

Для того чтобы правильно обновлять содержимое объекта dietaryRestrictions, можно воспользоваться функциональной формой setState

А как именно это сделать? У меня что-то никак не получается.

Получается состояние всегда нужно хранить в компоненте родителе? Ведь мы, когда щелкаем по флажку, изменяем состояние только одного экземпляра компонента TodoItem, а перезаписываем состояния всех. Возможно ли хранить состояние каждого из них отдельно и целесообразно ли это? Будет ли дальше в курсе об этом поподробнее? Если нет, то где можно почитать про такие нюансы?

Information

Rating
Does not participate
Location
Иркутская обл., Россия
Date of birth
Registered
Activity