Ага, я понял, надо через Constraints задать ширину, а вот та ширина, которая задана у Field (в правом верхнем углу можно видеть) - она не считается почему-то.
Спасибо, это действительно сработало.
Но, честно говоря, яснее для меня ситуация не стала. Если Вам не сложно, прокомментируйте пожалуйста, почему именно так работает и что не правильно в моем подходе?
Mikhail Osher, мне Flow больше понравился. Например, в данном случае Flow мне показывает ошибку, но это не мешает мне работать дальше и ждать когда мне на Тостере помогут :) А Typescript бы сейчас просто падал с ошибкой, не компилируя приложение и банально мешал бы работе.
И все-таки Вы оказались правы: я не поставил // flow в файле, который по сути проксировал импорты типов, то есть испортировал их все из директории и экспортировал наружу, чтобы было удобно импортировать. И там я забыл поставить // flow. Поэтому все как-то частично работало
// flow я конечно не забываю.
Это все очень непонятно, Flow вообще ведет себя странно. Вот пример:
А вот пример как он не дает использовать простой .reduce()
Причем, в примере выше я просто использовал для демонстрации parseInt(), хотя в реальном коде там юзается метод, который принимает строку и возвращает число всегда.
Interface, вообще мне скажется тут есть путаница с терминологией. Денормализованное состояние - это дублирующиеся данные. Скорее всего в доке имеется ввиду все-таки нормализованное состоянием, но ссылки и обращение не по primary key, а просто хранение ссылок на объекты.
Тут надо помнить, что удаление из объекта в таком случае происходит с помощью оператора delete, а не возвращением нового объекта без удаляемого ключа. Тогда да, ссылка просто становится битой. Но в redux я нередко в селекторе проверял if user[id]... понимая, что юзера в какой-то момент может и не быть. Как это работает с mobx у меня конечно понимания пока нет. Надо пробовать походу просто.
Антон Спирин, после долгих экспериментов пришел к следующим выводам:
- connect отрабатывает правильно (я залез в исходники и отдебажил),
- оптимизация connect не работает только в компонентах с системой виртуализации React-Native таких как FlatList
Что делать? Это тот самый случай когда оказывается нужным параметр функции connect pure. То есть так как все равно эта оптимизация работать не будет, но будет отрабатывать, ее следует отключить и использовать внутри виртуального списка только PureComponent, которые оборачивать примерно так:
Давно хотел спросить: как оно в 2018 году с отключенным JS. Я думал юзеры с отключенным JS существуют только в параноидальных кошмарах фронтендеров.
Как, например, Вы отправили свой ответ? С отключенным JS кнопка отправки не активна.
Как видео посмотреть? Оно просто не будет работать. А Youtube с отклоюченным JS выглядит как белая страница.
Каждый раз включаете когда нужен? Не надоедает?
На самом деле я люблю и использую оба этих middleware.
Просто я что называется "загнался". Был единственный компонент (форма авторизации), которому нафиг не нужно взаимодействие со стором. Когда я начал писать для него обработчик, мне пришло в голову, что компоненту не стоит обрабатывать ошибки, я решил вынести эту логику наружу... и пошло поехало с нарастающим запахом кода. Вот так когда работаешь один над проектом, бывает некому сказать "Остановись, ты едешь вообще не туда!".
Конечно Вы правы и надо передавать а обработчик ошибки в action creators и то, что я придумал - просто не верный подход.
Хотя вопрос был про утечку памяти. но на самом деле Ваш ответ полностью снимает сам вопрос. Спасибо.
Если кто-то еще ответит про утечку памяти, с радостью так же отмечу ответом.
В общем да, это более менее вариант. А более красивого варианта передать статичные данные для инициализации компонента нет? Ведь по сути я создал наблюдаемое свойство, которое будет наблюдать за статическим JSONом. Не очень полезное занятие.