@typescript_ru

Страница 539 из 669
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 на () =>

вместо аннотаций

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
выключите strictFunctionTypes
есть какой-то профит от этого?

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
this.props.children || null ?
Так тоже не работает

Уже пробовал

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: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 получит этот объект при вызове?

Страница 539 из 669