@lilla.herman
Для передачи данных из дочернего компонента в родительский компонент в React Native можно использовать функцию-callback, которая передается в качестве props в дочерний компонент. В дочернем компоненте эта функция вызывается с необходимыми данными в качестве аргументов, а родительский компонент может использовать эти данные.
@lilla.herman
Пример реализации:
Родительский компонент:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
import React, { useState } from 'react'; import { View, Text } from 'react-native'; import ChildComponent from './ChildComponent'; const ParentComponent = () => { const [receivedData, setReceivedData] = useState(''); const handleDataReceived = (data) => { // Обработка полученных данных setReceivedData(data); }; return ( <View> <ChildComponent onDataReceived={handleDataReceived} /> <Text>Полученные данные: {receivedData}</Text> </View> ); }; export default ParentComponent; |
Дочерний компонент:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
import React, { useState } from 'react'; import { View, TextInput, Button } from 'react-native'; const ChildComponent = ({ onDataReceived }) => { const [inputData, setInputData] = useState(''); const sendDataToParent = () => { // Отправка данных в родительский компонент onDataReceived(inputData); }; return ( <View> <TextInput placeholder="Введите данные" value={inputData} onChangeText={setInputData} /> <Button title="Отправить" onPress={sendDataToParent} /> </View> ); }; export default ChildComponent; |
В данном примере родительский компонент ParentComponent содержит дочерний компонент ChildComponent. В дочернем компоненте определен атрибут onDataReceived, который представляет функцию-callback для передачи данных в родительский компонент. При вводе данных и нажатии на кнопку в дочернем компоненте вызывается функция sendDataToParent, которая передает введенные данные в родительский компонент с помощью функции-callback onDataReceived. Родительский компонент обрабатывает полученные данные в функции handleDataReceived и сохраняет их в состоянии receivedData, которое затем отображается в текстовом компоненте.