Size: a a a

Kotlin Community

2020 July 20

AS

Andrey Stepankov in Kotlin Community
Ruslan Ibragimov
Хочешь поменять модель в чайлдах - прокидывай колбеки, ничего не напоминает?
Что должно было напомнить?
источник

AN

Alexander Nozik in Kotlin Community
Andrey Stepankov
Что должно было напомнить?
реакт
источник

AN

Alexander Nozik in Kotlin Community
Ruslan Ibragimov
Я подозреваю что да
Не понятно, с чего бы. Что в нем такое есть, для чего нужно его создавать внутри?
источник

AN

Alexander Nozik in Kotlin Community
Я думаю, что это просто обсервабл на который подписывается изменение стейта
источник

I

Igor in Kotlin Community
Alexander Nozik
Ну и фиг с ним, модель-то вне ее лежит
Те вы в виджете
- при первом рендере куда глобально сохраните MutableState
- при последующих рендерах будет перезаписывать если поменялась
- потом из другого места программы будете вызвать мутации, не имея возможности ни как обработать отписку и тд (у MutableState<T> есть только одно var проперти внутри)

звучит как что-то очень странное
источник

AN

Alexander Nozik in Kotlin Community
Igor
Те вы в виджете
- при первом рендере куда глобально сохраните MutableState
- при последующих рендерах будет перезаписывать если поменялась
- потом из другого места программы будете вызвать мутации, не имея возможности ни как обработать отписку и тд (у MutableState<T> есть только одно var проперти внутри)

звучит как что-то очень странное
Ну как бы возьмем стандартный торнадовский MVVM. Там вью-модель и модель инжектятся независимым образом
источник

RI

Ruslan Ibragimov in Kotlin Community
Реконсиляция завязана на порядок вызова composable функций, теперь представим что мы создали такой объект и поменяли его в одном компоненте и тут же дернулся колбек в другом компоненте и сломалась рекосиляция:

class Position(x: Int, y: Int) {
var x by mutableStateOf(x)
var y by mutableStateOf(y)
}

val p = remember { Position(0, 0) }

@Composable fun Foo() {
PositionChanger(
  position=p,
  onXChange={ p.x = it }
  onYChange={ p.y = it }
)
}

@Composable fun Bar() {
PositionChanger(
  position=p,
  onXChange={ p.x = it }
  onYChange={ p.y = it }
)
}

@Composable fun Baz() {
   Bar()
   Foo()
}
источник

RI

Ruslan Ibragimov in Kotlin Community
Я вообще боюсь что с таким подоходом к реконсиляции что-то типо redux не будет вообще в Composer работать
источник

AN

Alexander Nozik in Kotlin Community
Ruslan Ibragimov
Реконсиляция завязана на порядок вызова composable функций, теперь представим что мы создали такой объект и поменяли его в одном компоненте и тут же дернулся колбек в другом компоненте и сломалась рекосиляция:

class Position(x: Int, y: Int) {
var x by mutableStateOf(x)
var y by mutableStateOf(y)
}

val p = remember { Position(0, 0) }

@Composable fun Foo() {
PositionChanger(
  position=p,
  onXChange={ p.x = it }
  onYChange={ p.y = it }
)
}

@Composable fun Bar() {
PositionChanger(
  position=p,
  onXChange={ p.x = it }
  onYChange={ p.y = it }
)
}

@Composable fun Baz() {
   Bar()
   Foo()
}
Ну я как бы ожидаю, что там будет подписка. Как в моей статье по реакту
источник

AN

Alexander Nozik in Kotlin Community
Alexander Nozik
Ну я как бы ожидаю, что там будет подписка. Как в моей статье по реакту
но не знаю, разумеется, как оно работает
источник

RI

Ruslan Ibragimov in Kotlin Community
Alexander Nozik
Ну я как бы ожидаю, что там будет подписка. Как в моей статье по реакту
Эта та, которая о том как не нужно использовать реакт?
источник

AN

Alexander Nozik in Kotlin Community
Ruslan Ibragimov
Эта та, которая о том как не нужно использовать реакт?
Нет, о том как просунуть Flow внутрть реакт структуры для изменения внутреннего состояния
источник

RI

Ruslan Ibragimov in Kotlin Community
источник

AN

Alexander Nozik in Kotlin Community
I see the point. But I see the other point as well.
источник

RI

Ruslan Ibragimov in Kotlin Community
Если это в проде, то не мудрено откуда баги. Потому что отписки никакой нет
источник

AN

Alexander Nozik in Kotlin Community
Ruslan Ibragimov
Если это в проде, то не мудрено откуда баги. Потому что отписки никакой нет
Ну я как бы сделал сейчас по канонам реакта, со стейтом наверху. Мне не нравится. Правда основные проблемы были не с этим, а с глюками реконсайла на managed components/
источник

I

Igor in Kotlin Community
Vladimir Petrakovich
У них точность будет не очень, ты же читал, почему в Duration это терпимо? 😉
Так что там с точностью? В double 15 значащих цифр, даже с миллисекундами этого хватит до 2200 года
источник

TN

Tyler Neal in Kotlin Community
Добрый день! Подскажите, пожалуйста, где в Intellj Idea вводить входные данные от команд типа
val scanner = Scanner(System.in)
val a = scanner.nextInt()
источник

QH

Quantum Harmonizer in Kotlin Community
Tyler Neal
Добрый день! Подскажите, пожалуйста, где в Intellj Idea вводить входные данные от команд типа
val scanner = Scanner(System.in)
val a = scanner.nextInt()
когда запускаешь свой код, внизу появляется своего рода терминал
источник

TN

Tyler Neal in Kotlin Community
Вот так?
источник