Я пытаюсь отправить значение TextInput на другой экран, может кто-нибудь помочь мне, пожалуйста. Вот мой код:
const [text, setText] = useState ( ' ');
return (
<>
<TextInput style = {styles.input}
underlineColorAndroid = "transparent"
placeholder = " Type "
placeholderTextColor = "#9a73ef"
autoCapitalize = "none"
onChangeText = {text => setText(text)}
//defaultValue = {text}
/>
<Button
title = "Go to Details"
onPress = {() => navigation.navigate('Details')}
/>
-----
это мой экран Detais:
function DetailsScreen( {text}) {
return (
<View>
<Text> Hello this is Details Screen + { text }</Text>
</View>
);
}
не может принимать никакого значения, даже сделал опору
Вы должны передать параметр, как показано ниже
<Button
title = "Go to Details"
onPress = {() => navigation.navigate('Details',{text:text})}
/>
И на экране сведений вы должны получить его, как показано ниже.
function DetailsScreen( {route}) {
return (
<View>
<Text> Hello this is Details Screen + { route.params.text }</Text>
</View>
);
}
Обратитесь к официальной документации
о, спасибо большое, получилось? но можно я задам тебе вопрос? как работает маршрут? это как опора?
Это не похоже на реквизит, в основном объект, который вы передаете в качестве второго параметра, будет в route.params, рендеринг вашего компонента обрабатывается навигационной библиотекой, поэтому у вас нет контроля над реквизитами этого компонента, единственный способ - передать параметры, как указано выше.
ох, хорошо . я попробовал эту технику с моим вторым TextInput, который является числовым: onChangeText = {num => setNum(num)} , а на экране Details это выглядит так: <Text> Здравствуйте, это Details Screen + {route.params.num}</Text > а работы нет..(
вы прошли как navigation.navigate('Details',{text:text,num:num})} ?
Где отображается
DetailsScreen
? Текст передается?