Вы можете достичь статической функциональности в Kotlin с помощью Companion Objects
class MyClass{
companion object {
val staticField = "This is an example of static field Object Decleration"
fun getStaticFunction(): String {
return "This is example of static function for Object Decleration"
}
}
}
Члены сопутствующего объекта можно вызвать, просто используя имя класса в качестве определителя:
Выход:
MyClass.staticField // This is an example of static field Object Decleration
MyClass.getStaticFunction() : // This is an example of static function for Object Decleration
Похоже, что вы неверно истолковываете результаты консоли, вы обнаружили edited value..
в setState callback
, который запускается после обновления компонента из-за изменения состояния.
Если вы действительно посмотрите на componentWillReceiveProps
и componentDidUpdate
childComponent и зарегистрируете реквизиты в этом жизненном цикле или, по сути, в методе рендеринга, вы действительно сможете увидеть обновленное значение, которое вы установили в состоянии.
Вы должны думать о setState callback
как о lifecycle
, который запускается после обновления компонентов, аналогично componentDidUpdate
и componentDidUpdate
родительского элемента, чаще всего запускается после componentDidUpdate
дочерних компонентов
Привет, я проверил твой код, и он работает так, как ты ожидал.
Вот вам песочница: https://codesandbox.io/s/7yry1onrq6
Чтобы увидеть изменения после нажатия TextComponent
, просто используйте [ 112] реквизит в AreaComponent
.
Это пример, отражающий ваш код:
class AreaComponent extends React.Component {
componentDidUpdate() {
console.log("update - component");
}
componentWillReceiveProps(nextProps) {
console.log("receive - component");
}
render() {
return <p>{this.props.editedValue}</p>;
}
}
В приведенном выше примере editedValue
корректно меняется после нажатия.