我尝试在屏幕之间传递数据,但失败
undefined is not an object (evaluating 'props.navigation.getParams')
我的代码:
第一屏:
const ForgotPasswordScreen = ({ navigation, }) => {
const [text, setText] = useState('');
return (
<View>
<TextInput onChangeText={(text) => { setText(text) }}></TextInput>
<TouchableOpacity onPress={() => { navigation.navigate('VerificationScreen', { phoneNumber: text }) }}>
<Text style={{ color: COLORS.WHITE, fontSize: 16, fontWeight: 'bold' }}>Continue</Text>
</TouchableOpacity>
</View>
)
我尝试在第二个屏幕接收数据:
const VerificationScreen = ({ navigation, }, props) => {
const phoneNumber = props.navigation.getParams('phoneNumber');
return (
<View>
<Text>{phoneNumber}</Text>
</View>
)
非常感谢!!
3条答案
按热度按时间00jrzges1#
输出:
这个完整的例子应该可以工作:
您可以在这里找到完整的示例:Live Demo
vhmi4jdf2#
在react中,
props
是函数组件的 * first * 参数。在上面的示例中,您试图在
VerificationScreen
函数组件的 * second * 参数中访问props
(应该是undefined
)。此外,您尝试访问
props.navigation
,这将给您一个错误:未捕获的类型错误:无法读取未定义的属性"navigation
相反,因为您已经在
VerificationScreen
函数组件的 * first * 参数中从props
反结构化navigation
,所以应该使用它来访问navigate
方法。我强烈建议您花一些时间阅读the react docs。
cunj1qz13#
在第二个屏幕中,您可以更改