Реквизиты и состояние связаны. Состояние одного компонента часто становится опорой дочернего компонента. Реквизиты передаются дочернему элементу в методе рендеринга родителя как второй аргумент React.createElement()
или, если вы используете JSX, более знакомые атрибуты тегов.
<MyChild name={this.state.childsName} />
Значение состояния родителя из childsName
становится дочерним this.props.name
ребенка. С точки зрения ребенка, имя prop неизменно. Если это нужно изменить, родитель должен просто изменить свое внутреннее состояние:
this.setState({ childsName: 'New name' });
и React будет распространять его на ребенка для вас. Естественный следующий вопрос: что, если ребенку нужно изменить свое имя? Обычно это делается через дочерние события и родительские обратные вызовы. Ребенок может выставить событие, называемое, например, onNameChanged
. Затем родитель будет подписаться на событие, передав обработчик обратного вызова.
<MyChild name={this.state.childsName} onNameChanged={this.handleName} />
Ребенок передаст свое запрошенное новое имя в качестве аргумента для обратного вызова события, вызвав, например, this.props.onNameChanged('New name')
, и parent будет использовать имя в обработчике события для обновления своего состояния.
handleName: function(newName) {
this.setState({ childsName: newName });
}
Вы можете посмотреть на Insights Time Series . Также см. Эталонная архитектура IoT Azure
.