Gena
Я сейчас поискал по своим проектам, и понял, что у меня этот регексп остался только для jest
Gena
В таком виде, к примеру:
transformIgnorePatterns: ['node_modules/(?!(react-native|lodash-es)/)']
Gena
А вот в rn-cli.config.js его нигде нет... вот сейчас смотрю в исходники metro ((
Tupalov
Gena
Нет ) jest игнорирует`/node_modules/` автоматом, а этот регексп, добавляет исключения, т.е. говорит, "игнорируй всё что начинается с node_modules/, кроме node_modules/react-native и `node_modules/lodash-es`"
Gena
В общем транспилят они всё сейчас похоже. Смотрите:
1. https://github.com/facebook/metro/blob/v0.30.2/packages/metro/src/rn-cli.config.js дефолтный конфиг, в него мержится проектный. там есть getBlacklistRE, но в нем такое: https://github.com/facebook/metro/blob/v0.30.2/packages/metro/src/blacklist.js#L15, т.е. самих node_modules нет.
2. Трансформер будет получать файлы на трансформацию и собирать для них конфиг, вот здесь: https://github.com/facebook/metro/blob/v0.30.2/packages/metro/src/transformer.js#L134 - ни каких ограничений, опять всё
3. Есть опция в том же файле резолвится, надо ли для всего использовать проектный .babelrc или искать для каждого модуля вот здесь обработка: https://github.com/facebook/metro/blob/v0.30.2/packages/metro/src/transformer.js#L87
Gena
Описание опции здесь: https://github.com/facebook/metro/blob/v0.30.2/packages/metro/src/Config.js#L75
Gena
И транспилят они всё скорей всего чтоб HMR работал или ещё какие преобразования они теперь через babel делают... не знаю
Tupalov
Большое спасибо. Приходит немного понимания.
Еще вопрос - получается, что metro реализует свой кастомный резолвер для модулей, где пытается их сразу транспилить и каким-то образом оптимизировать?
Tupalov
В общем это я наверно сам уже смогу по исходникам понять. Главное что хотя бы нить нашел. Спасибо )
Gena
Tupalov
Чем вебпак не подошел?
Alexander
Подскажите начинающему, как лучше отлаживать стили в реакте?
Gena
Gena
Rinat
ребят привет, я тут наколхозил немного, может у кого есть идеи...
Rinat
https://giphy.com/gifs/vx2exZKa0Gvufv341n
Rinat
проблема в изменении цвета выбранного item
Valentyn
а нельзя черный блок спозиционировать за селектором?
а селектору впилить прозрачный фон
Valentyn
тогда текст будет всегд поверх блока и не надо стейты менять по смене
Rinat
да так уже есть, текст черный)
Rinat
http://prntscr.com/k81mdq
Rinat
думал наоборот, черный поверх селектора, и впилить текст в черный блок..но думаю будет хуже еще)
Valentyn
а какой пакет для селектора используешь?
Rinat
да и поверх если фон, то селектор собственно недоступен будет
Rinat
стандартный, PickerIOS
Rinat
http://www.giphy.com/gifs/cOHWVNefAhPkaiEyRA
Gena
проблема в изменении цвета выбранного item
Теоретически можно анимировать и цвет, но это будет всё равно не тот эффект. А вот что надо, так это некий слой "эффекта" сверху, типа маски, по которой инверсия происходит (в нативе, я бы в эту сторону думал). Стандартного такого компонента в RN вроде нету... но м.б. что-то на гитхабе найдется?
Gena
Кто нибудь detox использует для тестирования? Можете ощущениями поделиться?
Dmitry
Dmitry
Реакт нейтив это боль
Dmitry
Vit
zamir
ребят как вы решали эту проблему?
те шаги что ниже предложены прошел, на ссылку в ишью перешел и по ним тоже подеалл, не выходит, может вам чтото еще известно?)
zamir
zamir
Gena
Вот )) Варианта 2:
1. Вы хотите использовать абсолютные импорты. Положите в src package.json вот этого хватит: { "name": "src" }
2. Вам эти хаки не нужны, тогда импортируйте как import Login from './src/Login'
zamir
Gena
Когда поменяете на относительный, попробуйте остановить пакаджер, почистить кеш, в том числе watchman, если он есть и запустить пакаджер снова. Потом можно дальше думать )
Gena
И оно правильно работает?
Gena
А... я думал это рецепт и очень удивился, сорри... а что конкретно надо? В смысле что под "каждым новым вызовом" подразумевается?
Gena
На чистом реакт (этих примеров полно в вебе должно быть... они вроде любят на часах туториалы делать):
class Comp extends React.Component {
state = { count: 0 }
timer = undefined
componentDidMount() {
this.timer = setInterval(() => {
if (this.state.counter >= this.props.maxCounter) return
const counter = this.state.counter + 1
this.setState({ counter })
}, 5000)
}
componentWillUnmount() { if (this.timer) clearInterval(this.timer) }
}
Gena
Если counter где-то ещё модифицироваться может, то сложней, надо в setState коллбэк отправлять, который его апдейтит. Это в доках по реакту есть.
Gena
Мы т.к. mobx используем, склонны сейчас вообще стейт не использовать. Для сравнения:
@observer
class Comp extends React.Component {
@observable counter: number = 0
timer: any = undfined
componentDidMount() {
this.timer = setInterval(() => {
if (this.counter >= this.props.maxCounter) return
this.counter = this.counter + 1 // вот здесь код получается понятней и проще. он синхронный и нет странных мерджей объектов, т.е. мы просто модифицируем св-во
}, 5000)
}
componentWillUnmount() { if (this.timer) clearInterval(this.timer) }
}
Stas
Gena
Исправил
Stas
можно и так
this.timer = setInterval(() => {
this.setState(
({counter}) =>
counter <= this.props.maxCounter
? {counter: counter + 1}
: undefined
);
}, 5000);
Stas
вернее нужно, если там не 5000 мс, а 50
Gena
Stas
Stas
)00)0
Gena
mobx не нужно, когда есть rx
Я честно говоря про него только слышал и открывал главную страницу проекта... а можете этот же пример с его использованием сделать?
Stas
https://github.com/redux-observable/redux-observable
Stas
если говорить про redux
Stas
Stas
Stas
https://www.youtube.com/watch?v=R4sTvHXkToQ что mobx что rx это про frp. меня этот доклад отчасти вдохновил к изучению rxjava...
Gena
Без извратов с такой реализацией никак. Если доступ к счетчику нужен из других частей иерархии компонентов, то это "модель" и её вообще надо выносить из компонентов.
Миша
у скринов есть свои хуки
Миша
https://reactnavigation.org/docs/en/navigation-prop.html#addlistener-subscribe-to-updates-to-navigation-lifecycle
Миша
зачем в componentDidMount?
Миша
в поле класса запиши
Aleksei
Vlad
ребят, кто-то такое встречал? это при установленной прилажке фейсбука
Vlad
Всегда так, единственное что щас понял, что если я логинюсь или регистрируюсь от пользователя который админ в дев аккаунте Фейсбука то все ок
Vlad
При этом приложение в Фейсбуке в лайв моде и у айоса все в порядке
Vlad
Vlad
Проблема ещё в том что это происходит в бекграунде и в адб ничего не падает
Никита
если нет прилодения то все ок?
Vlad
Если нет прилажки фб то все ок, да