Roman Prokopets, кто тебе 500 то шлёт? Твой сервер? Так разбирайся с ним, откуда нам знать что у тебя там. Saucelabs? Напиши им в саппорт, не зря же ты им бабло платишь...
Раз Два, ну вот и ответ. У тебя где-то переадресация /home -> /. Соответственно to={`/${path}`} не совпадает и подсветки нет.
Либо проверяй тут в лоб на home, либо доработай свою систему до поддержки редиректов. Этот ваш react-router такая непрактичная шляпа, что я до сих пор в недоумении.
Вникать лень, но стандартное решение - разбить всё на максимум мини-компонентов, каждый из которых memo(без children и немемоизированых объектов на вход)...
Могу только сказать, что можно: в репах пакетов хранятся все версии за всё время, надо только установить нужную. А вот как - тут разбирайся сам или подожди пока кто-нить в теме ответит.)
Мужик, это целая либа по работе с модальными окнами.
Там куча подводных камней, мелочей которые надо учесть, и вообще всякой кроссбраузерной ереси.
Погугли готовые решения и почитай доки, возможно какая-то либа позволяет все три варианта поведения. Если нет - возьми одну, понравившуюся, за основу и допили.
С нуля в черновом варианте это конечно можно написать за вечер, даже за пару часов. Но отладка нюансов и багов займёт от месяца.
Сергей Сергей, если ты создал кусок JSX отдельно а потом переиспользуешь - то да, какбэ объект один - ссылка одна. А если ты создаёшь JSX в процессе рендера(т.е. примерно всегда) - новый JSX !== старому JSX и вот тебе перерисовки. Там сеть оптимизации которые касаются конкретно работы с DOM, но с самими компонентами придётся всегда всё держать в голове и шаманить вручную: всякие memo, shouldComponentUpdate(причём зачастую с кастомними функциями) итд.
Кто реально умеет это делать из коробки - это Vue, но там свои нюансы.
Александр, а его нету, этого вашего решения! *жизнерадостный смех*
For React, it is.
Точнее в каждом конкретном случае оно своё - надо напрягать мозги и держать в голове механизмы реакта. Например в случае с <b> - вынести в ещё один memo-компоннет, куда передавать чистый index.
Или забить.
Вся философия реакта сводится к идее: забей болт на оптимизацию пока не лагает, когда залагает - оптимизируй узкое место.
Проблема только в том что с таким подходом тормоза накапливаются постепенно и в один прекрасный момент всё начинает тормозить без конкретно локализуемой причины. На том обычно и сказке конец.
Black_Fire, cellData - это ключ, а полученное по этому ключу значение contact[cellData] - это значение. Типизируем мы тут cellData - ключ, какое там получится значение - никакого отношения к ключу не имеет...
А в React я сам страдаю:(.