
anatolii
14.03.2018
16:51:10
он же массив детей может принимать
а возвращать из рендера массив нельзя
Я думал по этому ругается
Даже название children предполагает к массиву

Google

Дмитрий
14.03.2018
16:52:41
В тайпингах реакта render Component описан render(): ReactNode;

anatolii
14.03.2018
16:52:50
все правильно

Дмитрий
14.03.2018
16:53:09
то есть children - ReactNode
и возвращаться должен ReactNode
что не так?)

anatolii
14.03.2018
16:53:49
children ReactNode | RectNode[] | undefined

Дмитрий
14.03.2018
16:53:57
что это?

anatolii
14.03.2018
16:54:00
а возвращаться должен ReactNode

Дмитрий
14.03.2018
16:54:07
да с фига ли
блин
ReactNode УЖЕ влючает в себя массив
То есть массив детей - это ТОЖЕ ReactNode
без всяких []

andretshurotshka?❄️кде
14.03.2018
16:54:41
лол

Google

Дмитрий
14.03.2018
16:54:58
¯\_(ツ)_/¯

andretshurotshka?❄️кде
14.03.2018
16:55:00
вот че значит добавить strictFunctionTypes на () =>
вместо аннотаций

Дмитрий
14.03.2018
16:55:16

anatolii
14.03.2018
16:55:20
тоесть
render() { <div></div><div></div> } это норма?

Дмитрий
14.03.2018
16:55:25
говно =(
Это немного не так работает
это будет render () { [<div/>, <div/>] }
и да, это норма
теперь
только ключи надо не забывать

anatolii
14.03.2018
16:56:40
фигасе
ладно, мои знания устарели
молчу :)

andretshurotshka?❄️кде
14.03.2018
16:57:22
выключите strictFunctionTypes

Дмитрий
14.03.2018
16:57:43

andretshurotshka?❄️кде
14.03.2018
16:57:49
ошибка пропадет твоя)

Дмитрий
14.03.2018
16:57:51
в смысле не от выключения
а от самого strictFunctionTypes

Google

andretshurotshka?❄️кде
14.03.2018
16:57:59
да есть
только не в таком виде
а как в флоу

Дмитрий
14.03.2018
17:03:34
че-т нифига
видимо, дело не в этом, а в непоняном типе '{ (): ReactNode; (): false | Element | null; }'
по нод_модулям ищу по 'false | Element | null', нет такого
откуда оно берется

Константин
14.03.2018
17:16:20
this.props.children || null ?

anatolii
14.03.2018
17:16:55
Это не мне, там другие это разбирают, я уже забыл об этом

Константин
14.03.2018
17:17:13
сорян, не докрутил до первого скрина)
@dimakorolev тебе видимо

Дмитрий
14.03.2018
17:18:24
Уже пробовал

anatolii
14.03.2018
17:18:42
А если в див обернуть?:)

Дмитрий
14.03.2018
17:18:51
Да и смысла в этом тоже нуль
Но это бессмысленно

anatolii
14.03.2018
17:20:05
С другой стороны это логично, чтоб не возвращал render ничего
в нормальных компонентах это учтено

Константин
14.03.2018
17:20:34
ну как раз null в рендере для этого

Google

Дмитрий
14.03.2018
17:21:08
Видимо, да

anatolii
14.03.2018
17:21:22
а обычный текст это тоже реактнода?

?????∞?
14.03.2018
17:21:48
type ReactNode = ReactChild | ReactFragment | ReactPortal | string | number | boolean | null | undefined;

Дмитрий
14.03.2018
17:22:01
У меня компонент-провайдер контекста, это, наверное, единственный кейс, когда прямой возврат children актуален, и оборачивать во что-то не хочется
В итоге обернул в Children.only
Как в Provider реакт-редакса
Но все равно это странно
В частности, если ему не нравится возвращаемое значение, почему эта ошибка падает на вызове компонента, а не при объявлении метода render
Видимо, я чего-то не понимаю ?

kana
14.03.2018
17:27:13
Так чилдрен же вообще чем угодно может быть, нет?
Да хоть функцтей

Дмитрий
14.03.2018
17:38:28
Ну да

Le
14.03.2018
17:43:39
https://blogs.msdn.microsoft.com/typescript/2018/01/31/announcing-typescript-2-7/#definite-assignment-assertions
хееех

Denis
14.03.2018
18:01:38
всем привет, возможно ли на тс типизировать подобный компонент? он берет несколько компонентов у которых children as function, собирает их результаты и отдает это все новой функцией
<Composed
components={[ScrollPosition, MousePosition, SunPosition]}
children={(scrollPos, mousePos, sunPosition) => null}
/>
смог типизировать только такое вот
const ComposedRenderPropComponents = composed(ScrollPosition, MousePosition, SunPosition)
с jsx уже не работает

Morsik
14.03.2018
18:03:52
variadic types кажется, и это пока только в планах

Denis
14.03.2018
18:05:40
это работает и правильно выводит типы

Google

Denis
14.03.2018
18:06:39
при подходе, где используется <Composed /> вместо composed, тип теряется

Alex
14.03.2018
18:31:00
arrow function в классе сохраняет this и не нужно биндить функции?

?????∞?
14.03.2018
18:31:27
ты имеешь ввиду class property
и да, не нужно биндить

Alex
14.03.2018
18:31:52
т.е. лучше сразу писать arrow function и уйти от bind'инга?

Сергей
14.03.2018
18:32:38

?????∞?
14.03.2018
18:32:46
бинды - мусор лишний

Alex
14.03.2018
18:33:07
так и понял, не знал раньше про особенность arrow функции

Сергей
14.03.2018
18:34:04
ну да
а зачем
юзаем новый синтаксис без знания особенностей
всё же норм

Дмитрий
14.03.2018
18:34:29
брат жив

Сергей
14.03.2018
18:34:29
какой-то вася рассказал как оно работает
и мы юзаем

?????∞?
14.03.2018
18:34:36
та нормально
работает же

Alex
14.03.2018
18:36:33
а как работает, когда в функцию в аргументе передаёшь arrow функцию и присваиваешь её property объекта
она в this получит этот объект при вызове?