Передача обратного вызова в качестве реквизита
Вы можете передать state
качестве реквизита дочерних компонентов, но вы не ограничены передачей данных. Вы также можете передавать функции обработчика или любой метод, определенный в компоненте React для дочернего компонента. Так вы позволяете дочерним компонентам взаимодействовать со своими родительскими компонентами. Вы передаете методы ребенку точно так же, как обычный пропеллер. Ему назначено имя, и у вас есть доступ к этому имени метода под this.props
в дочернем компоненте.
В редакторе кода есть три компонента. MyApp
компонент является родителем , который будет оказывать GetInput
и RenderInput
дочерние компоненты. Добавьте GetInput
компонент к методу визуализации в MyApp
, а затем передать его на опору называется input
, назначенный inputValue
из MyApp
«s state
. Также создайте handleChange
называемое handleChange
и передайте ему обработчик handleChange
ввода. Затем добавьте RenderInput
в метод рендеринга в MyApp
, затем создайте inputValue
с именем input
и передайте inputValue
из state
в него. После того, как вы закончите, вы сможете input
поле input
в компоненте GetInput
, которое затем вызывает метод обработчика в своем родителе через реквизиты. Это обновляет ввод в state
родителя, который передается как реквизит для обоих детей. Наблюдайте за тем, как данные передаются между компонентами и как единственный источник истины остается в state
родительского компонента. По общему признанию, этот пример немного надуман, но должен служить для иллюстрации того, как данные и обратные вызовы могут быть переданы между компонентами React.