#javascript #reactjs #react-native
#javascript #reactjs #react-native
Вопрос:
Я пытаюсь отправить значение 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')}
/>
-----
это мой детальный экран:
function DetailsScreen( {text}) {
return (
<View>
<Text> Hello this is Details Screen { text }</Text>
</View>
);
}
не могу принять никакого значения, даже сделал prop
Комментарии:
1. Где происходит
DetailsScreen
рендеринг? Передается ли текст?
Ответ №1:
Вы должны передать параметр, как показано ниже
<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>
);
}
Обратитесь к официальным документам
Комментарии:
1. о, большое вам спасибо, это сработало ? но могу я задать вам вопрос? как работает маршрут? это как реквизит?
2. Это не похоже на prop, в основном объект, который вы передаете в качестве второго параметра, будет находиться в route.params , рендеринг вашего компонента обрабатывается библиотекой навигации, поэтому у вас нет контроля над реквизитами этого компонента, единственный способ — передать параметры, как указано выше.
3. о, хорошо. я попробовал эту технику со своим вторым текстовым вводом, который является числовым: onChangeText={num => setNum(num)} , и на экране сведений выглядит так: <Текст> Привет, это экран сведений {route.params.num}</Text> но никакой работы .. (
4. вы передали как navigation.navigate(‘Details’,{text:text,num:num})} ?