Vikhrmodels/habr_qa_sbs huggingface dataset:
Вопрос: Как привести переменную к переменному типу?

Лучший ответ:
В других языках ЭТО реализуется так, как этого требует система типов конкретного языка, с помошью плюшек, предоставляемых самим языком и/или его стандартной библиотекой :) Подробности (например): раз, два, три. На практике это может быть что угодно - от велосипедной эксплуатации автобоксинга или перегрузки операторов / сигнатур методов, через рефлексию, дженерики, темплейты (в плюсах), или оберточные типы (как в Java) и вплоть до реальной компиляции "на лету" в каком-нить Groovy. Последнее, семантически - тот же eval, чреватый теми же побочными эффектами.
Тут фантазия разработчика, владеющего конкретным языком, ограничена, разве что, здравым смыслом, который, в первую очередь, призывает задуматься, а нафига это вообще нужно :) И, что характерно: в подавляющем большинстве случаев (если, конечно, мы не пишем како-нибудь интерпретатор или полиморфный вирус) эти размышления приводят к тому, что все решается проще и надежнее именно статической типизацией... т.е. да - где-то таки придется написать switch case :)

Худший ответ:
Неудачная попытка сделать Питона из Слоника? )))
stackoverflow.com/questions/4687967/php-casting-to...
Вопрос: React как тебя заставить при нажатии на дочерний элемент не отрабатывать onClick родительского?

Лучший ответ:
При клике на одном из узлов DOM, событие click "всплывает" вверх по дереву до тех пор пока не достигнет корня или не будет отменено в явном виде.
React передает в обработчик события "синтетический" объект события, который, помимо прочего имеет метод stopPropagate. Этот метод (как и его нативный аналог) останавливает дальнейшее "всплытие" события вверх по дереву DOM. Вот как можно использовать этот метод на практике:var Block = React.createClass({
    handleClose: function(e) {
        e.stopPropagation();
        alert('close');
    },
    handleClick: function(e) {
        alert('click');
    },
    render: function() {
        return (
            <div onClick={this.handleClick}>
                <span>Foo Bar Baz</span>
                <span onClick={this.handleClose}> &#215;</span>
            </div>
        );
    }
});
Проще говоря вам надо применить e.stopPropagation(); при клике на нужный вам элемент(лайк)
Ссылка на вопрос на stackoverflow: https://ru.stackoverflow.com/questions/537267/reac...

Худший ответ:
Отключите всплытие
Вопрос: Как передавать данные между потоками на Python?

Лучший ответ:
if __name__ == '__main__': # Не понял зачем эта строка, но так работает
При запуске файла на исполнение интерпретатор создает переменные окружения, для того файла, который запустили переменная __name__ == '__main__'. Если файл импортировали, в __name__ будет относительный путь к модулю, и в блок кода после if управление не попадет. (при импорте файл исполняется)
multiprocessing.Queue. Это синхронизированная очередь.
Создайте экземпляр и отдайте его каждому потоку. Поток пусть добавляет каждую итерацию расчета в список, а список потом отдает в очередь. Как только все потоки завершены, пробегаете по очереди, обрабатываете списки, делаете с ними что хотите.

Худший ответ:
* Во-первых, нормально работать в несколько потоков Вам помешает GIL
* Во-вторых, синхронизировать все результаты не обязательно, вам в конце ведь только счетчики нужны
* Смотрите модуль multiprocessing, он позволяет выполнять методы в отдельных процессах
* В каждом процессе считаете свою статистику, потом получаете результаты в главном процессе и суммируете.
Вопрос: Как верстать кнопки с svg иконками (html структура внутри)?

Лучший ответ:
Смотреть в сторону flex:
.button-menu {
 ...
 display: flex;
 align-items:center;
 }

Худший ответ:
Вот это работает!!!

<button class="button-menu">
  <span class="menu-icon">
    <svg width="40" height="40" viewBox="0 0 28 28" fill="none" xmlns="http://www.w3.org/2000/svg">
      <rect width="28" height="28" rx="14" fill="#7B82EC"/>
      <rect x="7" y="8" width="14" height="2" rx="1" fill="white"/>
      <rect x="7" y="18" width="14" height="2" rx="1" fill="white"/>
      <rect x="7" y="13" width="14" height="2" rx="1" fill="white"/>
    </svg>
  </span>
  <span class="button-label">Все разделы</span>
</button>
<style type="text/css">
 .button-menu {
   display:flex;
   padding:0;
   margin:0;
   border:0;
   border-radius:40px;
   background-color:#7b82ec;
   overflow:hidden;
 }
 .button-label {
   line-height:40px;
   text-transform:uppercase;
   color:white;
   margin:0 5px;
   font-size:20px;
 }
</style>
Вопрос: Возможна ли полноценная разработка на Go под Windows?

Лучший ответ:
На любом языке, от Ассемблера до Хаскелля, используйте биндинги для WinAPI, и получите прибитое гвоздями к винде приложение.
На C++ вполне можно писать код, работающий на любой платформе.

Худший ответ:
На любом языке, от Ассемблера до Хаскелля, используйте биндинги для WinAPI, и получите прибитое гвоздями к винде приложение.
На C++ вполне можно писать код, работающий на любой платформе.
Вопрос: Может лучше взять дедик? Или остаться на VPS?

Лучший ответ:
А смысл в дедике? Реально нужны эти ресурсы? Если нагрузка небольшая, станет потом положим 15 сайтов - ну повысите тариф до того что за $10/месяц. И опять заживете счастливо. А это дешевле дедика.
Покупать выделенный сервер просто так, без обоснованной надобности - смысла нет

Худший ответ:
выделенный сервер также даёт личный канал сети, который не надо делить с остальными клиентами VPS на нодах.
 также куча VPS может обойтись дороже при очень большом апгрейде, нежели выделенный сервер. 
в принципе мы апгрейдим и то и другое если потребуется.
Вопрос: Синхронизация баз, как это сделать?

Лучший ответ:
Однозначно не передавать все данные каждый раз. Добавить в данные поле "Ревизия", которое будет увеличиваться при каждом обновлении записи в таблице, на следующее глобальное значение.
При синхронизации - доставать из БД только те записи, ревизия которых больше чем последняя известная удаленному серверу, и передавать только их.
Изменяют данные в обеих БД, или одна из них однозначно владеет данными, а вторая только читает?

Худший ответ:
выбрать данные из удаленной базы -> положить в локальную
Вопрос: Как сделать такие контуры у блоков?

Лучший ответ:
Я хотел сначала дать решение, но после последнего абзацаПомогите пожалуйста специалисту, который только возобновил работу после 3 лет декретного отпуска:)
подумал, что вам будет очень полезно самой почитать и разобраться https://css-tricks.com/building-progress-ring-quickly/ 
Эта штука называется по разному - radial progress, ring, progress, cyrcle progress, просто гуглите это название с добавкой "css", найдете много материала.

Худший ответ:
Чуть проще и понятнее: тут и тут
PS: И бонус, как всегда: тут.
Вопрос: Как ограничить канал для пользователя?

Лучший ответ:
Вопрос - если какой нибудь прокси между сервером и клиентами, к примеру простой squid без проблем будет резать трафик, можно поставить pfsense, в настройках прост и есть web морда.
Настройка pfsense
https://habrahabr.ru/post/257787/
Настройка squid
https://habrahabr.ru/post/119611/
Можно и без прокси, средствами iptables на сервере
www.k-max.name/linux/iptables-v-primerax
www.linuxcenter.ru/lib/articles/networking/qos_lin...
P.S. И на чем сервер и какова его роль? Что стоит, то на нем?

Худший ответ:
Если это трафик не HTTP\HTTPS, то устанавливайте в разрыв маршрутизатор и на нём делайте QoS (можно в режиме бриджа). Реализуемо на mikrotik, Kerio, pFsense и на велосипедах. 
Иначе используйте прокси.
Вопрос: Не перебор ли для тестового задания?

Лучший ответ:
Норм для джуниора. Поверьте мидлу или сеньору это сделать можно за час-два :)
Тут по сути задача на умение гуглить и читать доки. Ничего сложного.

Худший ответ:
ну это реально мне накатать за день, с учетом того что я пхп и жс учил в году 2001
я такой можно сказать не до джун
понятно что все будет сильно не красиво и без бутстрапа, так как на изучение бутстрапа у меня может уйти неделя )
Вопрос: Как в WPF скрыть кнопки при нажатии?

Лучший ответ:
Поместить кнопки в контейнер и менять статус видимости у контейнера:<Button Content="Ok" HorizontalAlignment="Left" VerticalAlignment="Top" 
  Width="75" Margin="0,75,0,0" 
  Click="Button_Click"
/>

<WrapPanel Name="Buttons" Orientation="Horizontal">
  <Button Name="Button1" Content="Button" HorizontalAlignment="Left" 
    VerticalAlignment="Top" Width="75"
  />
  <Button Name="Button2" Content="Button" HorizontalAlignment="Left" 
    VerticalAlignment="Top" Width="75" 
  />
  <Button Name="Button3" Content="Button" HorizontalAlignment="Left" 
    VerticalAlignment="Top" Width="75" 
  />
  <Button Name="Button4" Content="Button" HorizontalAlignment="Left" 
    VerticalAlignment="Top" Width="75"
  />
</WrapPanel>private void Button_Click(object sender, RoutedEventArgs e)
{
  Buttons.Visibility = Visibility.Hidden; // Visibility.Visible

  /*
  if (Buttons.Visibility == Visibility.Hidden)
  {
    Buttons.Visibility = Visibility.Visible;
  }
  else
  {
    Buttons.Visibility = Visibility.Hidden;
  }
  */
}

Худший ответ:
WPF как бы естественным путем подразумевает mvvm. Ну а в mvvm-style свойство visibility кнопок или их контейнера должно быть прибиндено к свойству, которое изменяется например по выполнению команды.
Вопрос: Тонкости работы БД MySQL при одновременной записи и считывании данных из одной таблицы?

Лучший ответ:
Недостаточно данных. Разные storage engine будут вести себя разным образом. Для транзакционных storage будут иметь значение уровень изоляции транзакции и собственно как именно реализована транзакционная обработка в обоих приложениях.
innodb, read commited, транзакционная работа писателя: читатель увидит версию данных как будто писатель ничего ещё не делал.
innodb, read commited, нетранзакционная работа писателя/autocommit - читатель увидит какой-то промежуточный результат, что-то обновлено, что-то ещё нет.
myisam - подождёт завершение пишущего запроса (только мешающего запроса! Следующий пишущий запрос постоит подождёт завершение читающего запроса), прочитает текущее состояние

Худший ответ:
По моему существует такая вещь, как очередь. Могу ошибаться.
Вопрос: Актуальна ли еще модель акторов ( AKKA, Vert.X) или можно обойтись средствами Spring 5/Spring Boot 2 + Kafka?

Лучший ответ:
Каждый раз, когда читаю твои вопросы, сразу вспоминается поговорка "Слышал звон, да не знает, где он." Каждый раз в кучу оказываются смешаны несвязанные или слабосвязанные понятия и всё это обильно приправлено огульными сравнениями мягкого с тёплым.Конечно читал про реактивное программирование, как я понимаю, это когда клиент посылает request, его принимают, клиент продолжает заниматься другими своими делами, через некоторое время клиенту приходит response.
Ты даже близко не понял сути.
Реактивное программирование - это парадигма программирования, ориентированная на потоки данных и распространение изменений.
Модель акторов - это парадигма программирования, хорошо подходящая для разработки конкурентных и распределённых систем. 
Они между собой даже не связаны. Можно разработать реактивную программу не использующую акторы. Можно разработать не реактивную программу на акторах. И конечно же можно разработать реактивную программу на акторах.актуальна ли еще AKKA
Да, актуальна.Vert.X ( я так понимаю что это конкурент AKKA который вдобавок хорошо интегрирован с Hazelcast) ? 
Vert.X - не конкурент Akka. Они вообще разного поля ягоды. Vert.X - это очередной асинхронный фреймворк. Если сравнивать, то самый близкий аналог - Spring WebFlux.То есть когда мне вот прямо необходимо ее использовать и скажем реактивные средства Spring 5/Spring Boot 2, Kafka или RabbitMQ вообще не вариант?
Вот как начнёшь различать разработку web-приложений и распределённых систем, так можно будет и подумать об Akka.

Худший ответ:
Spring и Akka решают разные проблемы. Нет никаких препятствий к тому, чтобы использовать их вместе в одном приложении.
Что касается примера, когда стоит рассмотреть использование Akka: Представьте, что у вас есть международный банк. А у банка есть сложная скоринговая система, состоящая из множества подсистем. Одни подсистемы оценивают что, как часто и на какие суммы покупал клиент в прошлом. Другие оценивают источники, суммы и частоту пополнений карты. Третьи оценивают наличие имущества, суммы налогов и своевременность их уплаты. Четвёртые наличие страховок и возникновение страховых случаев. Пятые наличие кредитов в других банках. И т.д. и т.п. Каждая подсистема жрёт кучу ресурсов в процессе обработки одного клиента. Некоторые из них делают запросы к внешним сервисам, которые могут отвечать медленно или вообще не ответить. А обрабатывать надо десятки миллионов запросов в секунду. Желательно в реалтайме. И ни в коем случае не допускать сбоев. Да ещё и структура нагрузки постоянно меняется. Такое чудовище можно написать используя только spring-проекты, но притомишься обеспечивать производительность, масштабирование и устойчивость к сбоям. А вот Akka позволит сравнительно легко размазать систему по сотням серверов в нескольких ДЦ по всему миру.
Вопрос: Как снимают ночные сцены без шумов?

Лучший ответ:
В фильмах бывает дешевле срендерить, чем арендовать вертолет.

Худший ответ:
Последний раз мы снимали подобное в 2016 году. снимали Red Dragon в 8К с вертолета . Чтоб вы правильно понимали камера в комплекте стоит от 2.5 млн. Один аккум только 350к рублей + линзы в аренду стоимость которых где-то от 700к и выше. + постпрод работы
К сожалению, сейчас в России очень большое заблуждение в кино-видеосъемке. Каждый встречный-поперечный фотограф считает что купив тушку марк 100500 с возможностью съемки рав видео сможет в перерывах между щелчками затвора снять кино уровня Михалкова
Вопрос: Где лежит файл fann.so на debian?

Лучший ответ:
вы установили сам fann. осталось установить пхпешный модуль для работы с ним.

Худший ответ:
Для поиска в каком пакете и по какому пути находится файл, можно использовать сервис packages.debian.org.
Вот для примера, что нашлось по запросу fann.so.
Вопрос: На чём поднимать гостевой Wi-fi с идентификацией, чтобы исполнить постановление №758?

Лучший ответ:
Если у вас есть компетенции по настройке всего этого хозяйства и вы намерены взять на себя ответственность за данное решение, то можете построить решение на оборудовании mikrotik. Гуглить: mikrotik + captive portal + sms + фз. Если что либо из вышесказанного вы не понимаете или вам не приемлемо, то стоить купить готовое решение у профессионалов.

Худший ответ:
У меня поднят на UniFi + софтовый контроллер UniFi. Там гостевой вай-фай можно делать или на ваучерах, либо смс прикурить либо соц сети.
Вопрос: Symfony и Redis куда писать логику получения кэша?

Лучший ответ:
Сделать сервис, в нём методы получения данных. В методах доступ к кэшу и к репозитоиям. 
В идеале, в контроллере вообще не нужны репозитории - вся работа с ними в этом сервисе.
В этом сервисе и инвалидация делается.
Методы могут быть по конкретной сущности, а могут быть по типу (getEntity($type, $id)), если удобно.UPD. В качестве инструмента рекомендую использовать компонент Cache Component, в нём есть возможность использовать тегирование записей, это очень удобно (для инвалидации)! Doctrine Cache устарел, имхо.

Худший ответ:
Делайте отдельный сервис. В сервисе метод получения списка пользователей в котором и воткнете нужные проверки. Особенно если у вас список пользователей потребуется в разным местах, а затем вы решите сменить механизм кеширования, вам достаточно будет поправить логику только  в одном месте. В сервис можно будет добавить кучу еще всяких методов, например удаление пользователя, который будет дропать пользователя сразу и из кеша и из базы, или получение списка подчиненных, который у каждого авторизированного пользователя разный. Кароче инкапсуляция во всей красе.
Вопрос: Чем отличаются Ubuntu, Xubuntu, Kubuntu, Lubuntu?

Лучший ответ:
Lubuntu меньше всех грузит, да. 
Можно установить LXDE на любую установленную ubuntu и при входе выбирать графическую оболочку. Так что можно попробовать все эти KDE с Гномами без переустановки

Худший ответ:
У мну Интел двух ядерный по 2 ГГц и оперативы 2 гб. Старье ещё то. Поставил Elementary os доволен как бык. Все выше перечисленое, полёт нормальный оказался с элементари только. Хотя лубунту тоже норм было
Вопрос: Как отцентрировать flexbox-ом картинку по центру?

Лучший ответ:
<span>about</span> сделать фиксированной ширины + добавить второй с другой стороны и сделать ему opacity: 0<div class="abou__item">
  <span>about</span>
  <img src="img/about2.jpg" alt="">
  <span style="opacity: 0;">about</span>
</div>
Тогда этот блок будет всегда одинаковой ширины, с картинкой посередине

Худший ответ:
justify-content: center; // центируем по оси х
align-items: center; // центируем по оси у
Вопрос: Браузер только chrome как основной?

Лучший ответ:
При разработке Используйте что хотите. При тестировании используйте всё что можете

Худший ответ:
Opera тот же хром, пользуйся чем хочешь
Вопрос: Высокая температура чипсета?

Лучший ответ:
Вскрытие, и простая замена пасты может показать путь дальнейшего выбора! мне всегда такой выбор помогал!

Худший ответ:
Умирает чипсет или цепи питания. При таком перегреве вас ни радиатор, ни кулер не спасут (а если и спасут, то очень не на долго).
Вопрос: Могут ли два разных пользователя Linux иметь одну и ту же домашнюю папку?

Лучший ответ:
Могут. Но неудобно. Нужно разобраться с группой и umask

Худший ответ:
Могут. Через setfacl. Но это будет неудобно ни первому ни второму - потому что настроечные файлы будут меняться постоянно - например любой DE полагает, что кроме него никто в папку настроек не пишет...
Вопрос: Нужен ли я на Stand-up митингах?

Лучший ответ:
прав ли я?нет, пока не убедите начальство в обратном

Худший ответ:
У руководства scrum головного мозга. Обсуждения надо проводить по мере необходимости. Если это делать каждый день, то скоро это превратится в формальность. Для вас она уже точно в это превратилась.
Вопрос: Хочу создать интернет магазин и изучить веб разработку, с каких языков стоит начинать?

Лучший ответ:
Да ты прав. Первое что тебе надо это понимание HTML и CSS
для этого советую тебе https://htmlacademy.ru/
Мне нравится тут то что обучение происходит интерактивно.
Тебе хватит и бесплатного контента, но если понравится то поверь стоит купить подписку на месяц что бы пройти и платные темы.
Далее тебе понадобится Javascript  и для бекенда тебе понадобится PHP.
Если ты хочешь использовать Wordpress да и в приципе любую PHP CMS  то тебе необходимо PHP.
Для изучения Javascript советую https://learn.javascript.ru/
По поводу PHP  можешь если заинтересует то можешь отписаться я тебе все расскажу и посоветую что читать

Худший ответ:
html, css и php (свой движок напиши лучше)
Вопрос: Почему хорошей практикой считается сохранять this в переменную в jquery?

Лучший ответ:
Может быть чтобы лишний раз не вызывать функцию, а один раз получить объект и с ним работать...

Худший ответ:
Вообще-то лучше делать bind фукции, а не сохранять this.
Вопрос: Как организовать торговый аппарат?

Лучший ответ:
Устройство приема денег называется "купюроприемник".
Как вы видите, тут предусмотрены даже отверстия для прикручивания внутрь корпуса.
К компьютеру может подключаться:
одним проводком (вставленная купюра просто определенное число раз формирует напряжение на единственном проводке), 
COM-портом, 
USB-портом (как правило с эмуляцией COM-порта)
На фамилии и инициалов нужна клавиатура и экранчик.
Экранчик, например, такой:
Есть чисто алфавитно-цифровые (лучше их и выбрать для вашей задачи), а есть экранчики на которых любую картинку можно воссоздать.
Для печати нужен принтер. Есть специальные модели как раз для установки в автоматические устройства.
Возможно, что есть модели, которые умеют печатать и на картонках.
Для управления всем этим - вполне достаточно дешевенького микроконтроллера, а не полноценного компьютера.
Для начала изучения можете посмотреть Arduino (это контроллер и наборы для подключения к нему экранчиков и пр. устройств). Для реального проекта если речь идет о мелкой серии - тоже можно его использовать. В крупносерийном производстве выгоднее плату под свою задачу заказать.

Худший ответ:
Можно выкупить б/у терминал оплаты. Там есть все, кроме печати на картоне.
Но это очень тяжелый железный ящик... но типа более-менее надежный ящик для купюр.
софт: forpay или utspay - у них более-менее с драйверами разнообразнейшего зоопарка периферийного железа
Вопрос: Как изменить порядок блоков в grid сетке?

Лучший ответ:
Можно добавитьgrid-auto-flow: column;
  grid-template-rows: repeat(4, 1fr);
https://jsfiddle.net/qpvgfdst/11/

Худший ответ:
Используй вот это свойство, раскидай по шаблону блоки как тебе нужно https://developer.mozilla.org/ru/docs/Web/CSS/CSS_...
Вопрос: PHP. Как реализовать общий счетчик между несколькими скриптами?

Лучший ответ:
Например, так: php.net/manual/ru/memcached.increment.php

Худший ответ:
Например, так: php.net/manual/ru/memcached.increment.php
Вопрос: Как быстро загружать шрифты?

Лучший ответ:
1. Грузи сначала шрифты, которые используются на первом экране, остальные асинхронно (как - гоу в гугл!)
2. Если шрифт гугловский, грузи оттуда в любом случае.
3. На следующий проект постарайся использовать 2 дополнительных шрифта максимум, ваши завитушки никому не нужны, кроме чувства самоудовлетворения дизайнера. Идеально - ОДИН доп. шрифт. Подсказка: Helevetica - это не доп. шрифт.
4. Дизайнера отправь в ПТУ.На заметку: один шрифт создает от 3 до 6 запросов на сервер, умножаем твои 6 шрифтов на 6 запросов, получаем 36 запросов , вась! Уже превышение браузерного лимита, поэтому пользователь сидит и сосет лапку в ожидании чуда в виде открытия несчастной странички...
На планшете это будет выглядеть как бесконечный цикл перезагрузки страницы, можете посетителей с мобильным трафиком сразу выкинуть из статистики.

Худший ответ:
Основная задержка связана с тем когда браузер решает скачивать ресурсы, тем сколько времени это занимает и тем когда браузер будет готов отобразить.
Советы Гугла: Web Font Optimization
CSS unicode-range может ускорить чтение глифов со шрифта из определённого диапазона алфавита без необходимости загружать всю таблицу.
Вопрос: Как восстановить математическое мышление?

Лучший ответ:
Есть только одна рабочая методика. 
Мысль на физическом уровне есть результат прохождения электрических сигналов между нейронами по цепочкам. Чтобы сигнал перешел от одного нейрона к другому, в промежуток между ними (синапс) выделяется определенное количество нейромедиатора (серотонин и пр). Если сигналы раз за разом идут одними и теми же путями (при однородной умственной нагрузке), то необходимое для обеспечения проводимости количество нейромедиатора уменьшается, нарабатываются устойчивые связи. В конце концов однотипные задачи решаются в фоновом режиме. Если вы водите авто, обратите внимание, насколько часто взгляд перемещается по зеркалам, приборам, просто оцените объем информации, которая обрабатывается отдельным потоком и позволяет разговаривать с пассажиром при маневрировании. Решай задачи и все.

Худший ответ:
Честно говоря, очень актуальная проблема.
Спустя некоторое время при отсутствии практики в решении математических, физических или других задач - теряется навык составления уравнений, легкости преобразования текстового условия в системы, выражения одного через другое, понимание всего как это происходит. Все, что чуть дальше "скорость*время" может вызывать затруднения. Меня так же крайне беспокоит данная проблема. 
В качестве попыток решения проблемы - в какое-то время я банально брал школьные учебники и пытался нарешивать задачи, наращивая их сложность. 
Однако, такой процесс довольно долгий и трудозатратный. Но других выходов из ситуации я не вижу. На мой взгляд только таким образом можно освежить утерянный навык. Рад буду послушать так же и другие советы от людей, столкнувшихся с подобной проблемой.
Вопрос: Можно ли взять 100 заказов(с фикс. ценой) одновременно в Upwork?

Лучший ответ:
Хоть миллион. Аккаунт забанят через секунд 20

Худший ответ:
Для этого существуют агенства. Создавайте агенство и хоть миллион человек.
Вопрос: React + Redux, как записать в состояние после того как придут данные?

Лучший ответ:
static getDerivedStateFromProps(props, state) {
  if (props.visas[0] !== state.visa) {
    return {
      visa: props.visas[0],
    };
  }

  return null;
}
Массив this.props.visa должен существовать всегда.

Худший ответ:
Можно через флаг,  вместе с данными и поменять состояние