@react_js

Страница 4452 из 5115
Max
23.07.2018
08:51:08
у нас так onChange = (e: React.ChangeEvent<HTMLInputElement>) => { const value = this.props.type === 'number' ? parseFloat(e.target.value) : e.target.value if (Number.isNaN(value as number)) { return this.props.onChange && this.props.onChange(null) } this.props.onChange && this.props.onChange(value) }

@osipovvictor

Andrew
23.07.2018
08:51:59
во во. keyUp тут бесмысленнен и беспощаден, кмк

Viacheslav
23.07.2018
08:52:09
onBlur и подобное использовать можно как workaround для мобайла, где не будет работать onKey* ивенты точно так же вышесказанное не спасет от копипаста точки в поле:) одним хендлером для подобной задачи не обойтись, их должно быть несколько с разной логикой - какие-то будут отменять стандартный ввод символа в поле, какие-то делать пост-обработку и исключать последний введенный символ "."

Google
Max
23.07.2018
08:52:29
не, я про форматирование валюты подумал сначала

Max
23.07.2018
08:53:24
у нас просто форматирование $123,2323,2323.99

Andrew
23.07.2018
08:53:44
так может какой-то maskedInput использовать и не париться?

Max
23.07.2018
08:53:45
(когда не в фокусе) а редактирование в формате 123123123123.99

Victor
23.07.2018
08:53:56
ох, дикуха

спасибо, решение годное

Max
23.07.2018
08:54:49
ну просто давать редактировать в формате аутпута пробовали — чот головняка много поэтому в редактировании parseFloat а на onBlur показываем отформатированное значени

Viacheslav
23.07.2018
08:54:56
если задачи стоит именно как форматирование валюты, то используйте что-то вроде jQuery mask, но без jQuery :) Victor https://igorescobar.github.io/jQuery-Mask-Plugin/ попробуй здесь вводить значения в поле "Money"

Viacheslav
23.07.2018
08:55:31
+1

Roman
23.07.2018
08:55:35
кому адресовывать?

Andrew
23.07.2018
08:55:52
@osipovvictor

Google
Max
23.07.2018
08:56:12
cleave.js
еджкейсы ломаются



вот так выделяешь, копируешь - копируется весь инпут целиком

Алексей
23.07.2018
09:00:40
Привет ребят, посоветуйте пожалуйста либу, совместимая с реактом, через которую можно удобно работать с загружаемыми через инпут файлами?

Alexey
23.07.2018
09:01:18
А что ты с ними собираешься делать кроме как отправлять на сервер?

Алексей
23.07.2018
09:01:47
Dzmitry
23.07.2018
09:02:06
дропзон

Alexey
23.07.2018
09:02:19
А зачем либа, все что доступно можно и так прочитать

Dzmitry
23.07.2018
09:02:52
Roman
23.07.2018
09:03:10
топовая либа
Без зависимостей главное

Алексей
23.07.2018
09:03:35
понял, спасибо

Rafkat
23.07.2018
09:18:54
как сделать с помощью redux-thunk цепочку вызовов?

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

from
23.07.2018
09:21:45
мне нужно селать, чтобы определенный action вывзвался после того, как сработает другой, так как он зависит от резулттатов запросов первого
в redux-thunk ты можешь просто цепочку промисов сделать, а в них диспатчить когда надо Но в этом и проблема thunk'а, что он такую кашу располагает городить Подумай — может быть правильнее посмотреть на задачу по-другому. Может быть, какой-то элемент интерфейса должен среагировать на появившиеся после первого экшна данные и в didUpdate вызывать новое действие?

А может быть, к элементам интерфейса действие не имеет отношения (что как бы должно быть реже нежели чаще), и тогда стоит специальную миддлварку написать. Будет нагляднее.

Rafkat
23.07.2018
09:28:12
Просто в колбеке экшна избранных товаров, потом требуется обработать пришедшие данные, и для этого используется третья функция, которая использует данные из стейта, которые должны были придти в ответе первой

Google
Rafkat
23.07.2018
09:29:19
но зачастую возникала ситуация, что запрос второй функции завершался быстрее и получались неверные данные, так как в сторе еще не было данных от первой функции

Rafkat
23.07.2018
09:29:40
так может сразу получить все разом и отправить payload в стор?
я тоже так думал, но проблема, что 2 раза придется запрос отправлять

Roman
23.07.2018
09:31:24
я могу предложить что-то в виде такого await Promise.all(f1(), f2(),f3())

Admin
ERROR: S client not available

Rafkat
23.07.2018
09:33:23
async/await
тут даже async await не подойдет, грубо говоря, мне при вызове второй функции надо смотреть, завершен ли вызов второй функции( который непонятно откуда может быть вызван) и только после этого произвести вызов второй

я могу предложить что-то в виде такого await Promise.all(f1(), f2(),f3())
тоже вариант, проблема в том, что функции вызываются в разныъ местах проекта

from
23.07.2018
09:35:53
тоже вариант, проблема в том, что функции вызываются в разныъ местах проекта
проще всего сделать, чтобы во второй функции была проверка на то, есть ли нужные данные из первого запроса. Если нет — то делать его не очень красивое решение, но самое простое и эффективное тоже

Я правильно понял, что без результата первого запроса ты не можешь сделать второй _запрос_?

Т.к. если ты запрос второй можешь сделать, но не можешь читать его ответ, то лучше эти запросы не связывать

Dimanius851
23.07.2018
09:51:52
а как если у меня есть компонент модалки со стейтом внутри, открыть открывать ее снаружи?

Dimanius851
23.07.2018
09:52:15
Вячеслав
23.07.2018
09:52:21
какой?
isOpen например

Rafkat
23.07.2018
09:52:29
Dimanius851
23.07.2018
09:52:33
isOpen например
ну стейт то внутри, а не снаружи

Emir
23.07.2018
09:52:56
передаешь isOpen снаружи, и внутри используешь внешний

Вячеслав
23.07.2018
09:52:58
ну стейт то внутри, а не снаружи
все верно, поэтому передаешь props

Dimanius851
23.07.2018
09:55:13
ну так а стейт то внутри, isOpen

Google
Dimanius851
23.07.2018
09:55:37
а снаружи просто надо open() как то сделать

Emir
23.07.2018
09:57:38
а снаружи просто надо open() как то сделать
достаешь ref из модалки в родительском компоненте и вызываешь ref.open() / ref.close()

Dimanius851
23.07.2018
09:57:54
понятно, как то не очень

Emir
23.07.2018
09:58:27
понятно, как то не очень
вот поэтому мы и предложили передать просто props isOpen

Страница 4452 из 5115