Метод обмотки React-Kotlin setState

О реакционных документах здесь:

https://facebook.github.io/react/docs/state-and-lifecycle.html#state-updates-may-be-asynchronous

В нем говорится, что следующий код небезопасен для использования, поскольку состояние обновляется асинхронно:

this.setState({ counter: this.state.counter + this.props.increment, }); 

И вместо этого переходить в предыдущее состояние и реквизит вот так:

 this.setState(function(prevState, props) { return { counter: prevState.counter + props.increment }; }); 

Однако обертка React-Kotlin, расположенная здесь:

https://github.com/Kotlin/kotlin-fullstack-sample/tree/master/frontend/src/org/jetbrains/react

Изменено ли состояние в качестве функции расширения состояния, которая изменяет переменные на объекте состояния:

 //Located in the ReactComponent class in ReactComponent.kt fun setState(builder: S.() -> Unit) { ... } 

Если я вызову функцию setState как это в Kotlin:

 setState { counter: state.counter + props.increment } 

Разве это не эквивалентно небезопасному методу выше? Разве это не должно было быть реализовано так в обертке React-Kotlin?

 fun setState(builder: S.(prevState: S, props: P) -> Unit) { ... } 

А потом позвонил вот так?

 setState { prevState, props -> counter: prevState.counter + props.increment } 

Если вы хотите получить результат setState, вам нужно вызвать setState (newState, callback).

Вероятно, эта привязка React делает больше, чем просто оболочка. Я думаю, что реакция – это фасад над реальной реакцией.

Intereting Posts
как убрать DialogFragment из lambda, указанного в caller Kotlin GoogleApiClient: невозможно вручную подключиться и выполнить signOut впоследствии Какую ниже технологию я должен узнать теперь, когда разработчик Android будет использовать лучшие возможности в ближайшие дни? Изменить порядок слов в строке в Котлине Можно ли удалить непроверенный бросок в Kotlin при использовании arrayOfNulls? Ошибка Kotlin: Кинжал не поддерживает инъекцию в частные поля Функции Высокого порядка Котлина в проекте Java Spring Data JPA / Hibernate "Невозможно найти атрибут с заданным именем" Как передать значения из активности в другую деятельность в котлин Как получить значение ObservableField в android Значение ObservableField не распространяется Конвертировать проект Android для использования Gradle Script Kotlin Познакомиться с достопримечательностями в Котлин Kotlin – Полезность «вычисленных» свойств var? Когда именно ключевое слово оператора требуется в Котлине?