
Vadim
13.12.2017
14:20:00
У объекта, как я сказал выше, поля строковые

Andrew
13.12.2017
14:21:16

Александр
13.12.2017
14:22:01

Aleh
13.12.2017
14:23:16
ну только не <any>, а as any. Но вообще обновиться надо

Google

Aleh
13.12.2017
14:23:29
или не юзать enum, это еще лучше

Andrew
13.12.2017
14:23:40
Если код использовал эту фичу, то очевидно что он рассчитан на 2.4+

Ostap
13.12.2017
14:24:32

Andrew
13.12.2017
14:26:19
Можно наверное заменить на discriminated literal type

Александр
13.12.2017
16:43:10

Andrew
13.12.2017
16:43:55

Kirill
13.12.2017
16:51:25

Дмитрий
14.12.2017
09:03:43

Vadim
14.12.2017
09:04:51
А значение тоже должно соответствовать полю енума

Aleh
14.12.2017
09:05:24
А значение тоже должно соответствовать полю енума
https://www.typescriptlang.org/play/index.html#src=type%20Key%20%3D%20%22a%22%20%7C%20%22b%22%20%7C%20%22c%22%20%7C%20%22d%22%0A%0Atype%20MyEnum%20%3D%20%7B%0A%20%20%20%20%5BK%20in%20Key%5D%3A%20K%0A%7D%0A%0Adeclare%20const%20a%3A%20MyEnum

Vadim
14.12.2017
09:08:38
Это ок. Я интересовался как использовать именно enum, а не его имитации в версии 2.3 )
Но уже понял что для этой цели нельзя

Google

Vadim
14.12.2017
09:08:49
Спасибо!

Дмитрий
14.12.2017
09:12:48

from
14.12.2017
11:51:20
слушайте, не у кого не было проблемы что методы в конструкторе в тс как-то хреново байндятся?
боюсь не могу лучше объяснить)
суть в том, что простейший компонент с стейтом и инпутом
и вылетает ошибка
Warning: setState(...): Can only update a mounted or mounting component
компонент простейший:

Aleh
14.12.2017
11:53:05
Лучше гист чем фотка

from
14.12.2017
11:53:09
при этом если не байндить, а стрелочную функцию передать, всё нормально
:(

Сергей
14.12.2017
11:53:22
ты без подсветки синтаксиса пишешь?

Mike
14.12.2017
11:53:24
Вообще очень странно

from
14.12.2017
11:53:27

Aleh
14.12.2017
11:53:54
Вроде норм выглядит

from
14.12.2017
11:54:26
да вот и я о чем... причем в другом проекте норм...

Aleh
14.12.2017
11:54:28
У меня такие же работают

from
14.12.2017
11:54:32
но в упор не могу понять что тут не так
вот выдаёт эту ошибку и всё
если не байндить и через девтулзы вызвать handleChange, тоже всё правильно работает
то есть я виню этот байнд
но сам не понимаю, как он может быть виноват
предположение только что ts как-то конструктор по-другому обрабатывает....

Сергей
14.12.2017
11:57:13
ты думаешь в этом компоненте дело?

Google

Сергей
14.12.2017
11:57:17
а может в другом?
скинь это текстом

from
14.12.2017
11:57:59
class QueryStringForm extends React.Component<Props, State> {
constructor(props: Props) {
super(props);
this.state = { name: 'qwe' };
// this.handleChange = this.handleChange.bind(this);
}
handleChange(e: React.FormEvent<HTMLInputElement>) {
console.log('handleChange');
this.setState({ name: e.currentTarget.value });
}
render() {
return (
<form>
<input type="text" onChange={this.handleChange} />
</form>
);
}
}
export default QueryStringForm;
ну что, нет ни у кого идей?...
у меня тоже
придётся наверное с нуля воспроизводить

Mike
14.12.2017
13:01:40
ты смотрел в компиленный код? который js получается?
очень странно выглядит, должно работать

from
14.12.2017
13:02:54
о, идея
спасибо, ща попробую посомтреть

Evgeny
14.12.2017
13:05:53
это же в рантайме ошибка?

from
14.12.2017
13:06:05
ага

Evgeny
14.12.2017
13:06:54
с текста ошибки очевидно, что setState срабатывает когда у тебя компонент уже заанмаунтился

from
14.12.2017
13:07:12
"очевидно"-"очевидно"
никуда он не анмаунтится только)

Evgeny
14.12.2017
13:07:13
побуду капитаном
я просто пытаюсь сам для себя понять, каким образом тут тайпскрипт может влиять
потому что компонент выглядит обычно

from
14.12.2017
13:12:09
я думаю, что с ошибкой тут реакт мог... ошибиться)

Evgeny
14.12.2017
13:12:29
ты не смотрел скомпиленный код?

from
14.12.2017
13:14:16
вот добрался
блин, в нём не к чему придраться :/

Google

from
14.12.2017
13:14:44
constructor(e){super(e),this.state={name:"qwe"},this.handleChange=this.handleChange.bind(this)
весь компонент такой
class o extends r.Component{constructor(e){super(e),this.state={name:"qwe"},this.handleChange=this.handleChange.bind(this)}handleChange(e){console.log("handleChange"),this.setState({name:e.currentTarget.value})}render(){return r.createElement("form",null,r.createElement("input",{type:"text",onChange:this.handleChange}))}}

Evgeny
14.12.2017
13:16:10
ну просто ты ж понимаешь, если бы бинд криво отработал, то у тебя бы setState не выполнился бы вообще
был бы не ворнинг а какой нибудь эскепшен

from
14.12.2017
13:18:56
ну я как бы в полном замешательстве ) через стрелочную функцию работает

Admin
ERROR: S client not available

from
14.12.2017
13:19:22
может это вообще баг реакта какой-нибудь особенный
тут ещё и не обновиться легко из-за блюпринта блин

Evgeny
14.12.2017
13:22:17
у коллеги был похожий прикол со сторибуком, он в него сгрузил компонент который делал асинхронный запрос на сервак. когда он начинал клацать по табам сторибука, то компонент естественно анмаунтился и когда промис с респонсом резолвися, прилетал похожий ворнинг
у тебя может быть похожая ситуация

Maxim
14.12.2017
13:49:27
"typeRoots": [
"../../typings"
],
не резолвит
только в одном каталоге резолвит
ЧЯДНТ ? или в каком-то билде тс - это отвалилось ?
странно, что без baseUrl не работает..

Dmitry
15.12.2017
05:23:18
Добрый день :)
С ts работаю впервые, потому извиняюсь если банальщина :)
this.newDeliveries это массив объектов ес чо

Aldar
15.12.2017
05:27:27
Попробуй a: any

Google

Aldar
15.12.2017
05:28:22
И б тоже эни

Dmitry
15.12.2017
05:28:30
Может при объявлении массива объектов нужно было какие-то типы прописать?

Andrew
15.12.2017
05:30:02
Народ, вы чо
Функция сортировки должна number возвращать
1, 0 или -1

Александр
15.12.2017
05:31:20
измени < и > на -

Dmitry
15.12.2017
05:31:50
измени < и > на -
Тогда сортировка работает не по убыванию/возрастанию, а просто меняется местами индексы

Александр
15.12.2017
05:32:14

Andrew
15.12.2017
05:32:15

Dmitry
15.12.2017
05:32:15

Александр
15.12.2017
05:32:44

Andrew
15.12.2017
05:32:57
a-b и b-a

Александр
15.12.2017
05:33:00