Измените значения состояния, используя for-each и props - PullRequest
0 голосов
/ 24 февраля 2020
const [nav, setNav] = useState({
    firstPage: "active",
    secondPage: "deactive",
    navState: []
});

Это мое состояние в контексте,

const addNavi = (prop) => {

    let CurrentNavigation = nav.navState;

    if (!CurrentNavigation.includes(prop))
        CurrentNavigation.push(prop);

    setNav({ ...nav, navState: CurrentNavigation });

    CurrentNavigation.forEach(function (val) {
        if (val in nav) {
            setNav({ ...nav, val: "active" });
        }
    });
}

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

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

1 Ответ

1 голос
/ 24 февраля 2020

Не обновляйте свое состояние на каждой итерации. Сначала добавьте все эти пары nav: val в копию. после завершения всех итераций установите эту копию в свое состояние.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...