Slavik KENNY, это было бы возможно, если бы условие не требовало посимвольно кодировать буквы.
Тогда, поскольку алфавит всего из 7 букв, возможно 7 ^ 21 = 558545864083284007 различных паролей.
59-битное число дает 576460752303423488 различных значений, что немного больше.
pomozov, я нихрена не понимаю в пхп, и не могу сказать о правильности перевода. Например, $childs[] = ['page' ...] - это ведь просто добавление в конец массива, того самого, который лежит в карте?
мой вариант, если что, можно глянуть в консоли браузера, там и подебажить.
xULAIROW, ну в каком-то смысле да.
В react testing library нет функции, аналогичной shallow из enzyme, которая бы рендерила сам компонент, но не рендерила все пользовательские компоненты, в нем используемые, потому что testing library заточена под "реальный" рендер с помощью jsdom - то есть в "условиях, максимально близких к боевым".
Так что если не хочешь, чтобы в тесте SomeComponent участвовал Button, придется его замокать. Но только ради симуляции клика смысла в этом особо нет. Вот чтобы посмотреть входящие пропсы для Button, можно так сделать.
vladimir_vist, useRef - просто ячейка, в которой можно что-то хранить между рендерами, пока компонент не размаунтится.
В чистом реакте компоненты обновляются, если используешь useState, useReduce, или изменились пропсы компонента. Причем объекты сравниваются по ссылке (т.е. нельзя просто взять и поменять что-то внутри существующего объекта, чтобы ui обновился). Царство иммутабельности и чистых функций. Натянуть на это дело ООП (или всё это натянуть на ООП) не получится без костылей.
автор mobx по факту запилил собственную систему реактивности, основанную на проксях и аналогичную vue.
В системе вычетов по модулю M, прибавить (M-1) - то же самое, как отнять 1. Здесь это используется, чтобы не выскакивать в отрицательные числа, где % работает не совсем правильно.
Ankozar, вызвать можно в любом коде, который выполняется на старте. Как в этом вашем Vue делается, не знаю. Наверно да, должен быть какой-то корневой компонент, в котором подобные вещи запускаются.
Главное, чтобы к этому моменту уже был готов стор, чтобы в него кидать состояние запроса.
должен занестись в переменную (на самом деле, во Store во vuex)
ты ведь чувствуешь фундаментальную разницу между "переменной" и "Store"?
Store как раз под такие кейсы заточен. Сюжет примерно такой: на старте никаких данных нет, приложение делает запрос, при этом в Store ставится true в наблюдаемое поле loading. Рисуется лоадер. Пришли данные, попали в поле data, рисуется что-то осмысленное. Случилась ошибка, выставляется поле error (тоже наблюдаемое), рисуется сообщение об ошибке и кнопка "попробовать снова". У тебя обновляется стор и автоматически обновляется следящее за этим стором представление.
Евгений Усачев, ну всё правильно. У тебя размонтируется AllFriends, если он не нужен. Потом, когда снова нужен, монтируется заново. Потому и пишет в консоль.
Менять это нет смысла, так и должно быть.
А если хочешь только один раз получать список френдов, то держи его не в useState, а например в редуксе
если где-то выше происходит полная перерисовка, т.е. какой-то родитель полностью убирается на некоторое время(например через if), а потом появляется снова.
может так и есть. NeedleList (по которому монтируется/размонтируется AllFriends) меняется внутри TitleInMainPart, надо смотреть что там внутри.
надеюсь, эта наркомания нужна только для учебных целей )