我有2个屏幕,我想在不使用导航的情况下将数据从第一个屏幕传输到第二个屏幕,因为使用导航时需要转到下一个屏幕,我只想在单击第一个屏幕上的按钮时将数据传输到第二个屏幕。同样的问题,当按返回按钮返回第一个屏幕时,是否可以将数据从第二个屏幕传输到第一个屏幕,我使用导航中的默认后退按钮,因此不知道如何调用该后退按钮的onPress()。
export default function FirstScreen({ navigation }) {
return (
<View>
<TouchableOpacity onPress={() => {/* pass data (for example text) to SecondScreen
and don't need to switch to the SecondScreen */}}>
<View>
<Icon name="close"></Icon>
</View>
</TouchableOpacity>
<TouchableOpacity onPress={() => { navigation.navigate('secondscreen') }}>
</TouchableOpacity>
<Text>{/* display the data sent from the SecondScreen */}</Text>
</View>
);}
第二个屏幕
export default function SecondScreen({ navigation }) {
/* pass data to FirstScreen when click to back button in header navigation*/
return (
<View>
<Text>{/* display the data sent from the FirstScreen */}</Text>
</View>
);}
我已经试着搜索了,但是仍然找不到这个问题的具体解决方案。希望大家能帮忙
1条答案
按热度按时间zzwlnbp81#
这里有几个选项,你可以使用“useState()”,通过props传递状态和setState,或者用它创建一个回调函数。
除非这是你唯一使用这种状态的地方,否则在这种情况下使用全局应用状态听起来会更好,它会临时存储当前会话的状态,同时该状态可以从整个应用程序读取和访问。
我相信Redux是目前在应用程序中处理全局状态的最流行的方法,你应该谷歌一下并做一些研究。