react navigation version:5.x
刚开始写react-native发现用react navigation的goBack方法不会重新刷新要返回的页面,恰巧我想写的是修改资料的页面。于是就网上找了一下,看到别人写的将更新数据方法传递过去,试了一下方法确实行得通。
页面A
import React from 'react'
import {
View,
Text
} from 'react-native'
function PageA ({ navigation }) {
// 更新数据的方法
const updateData = () => {
console.log('更新数据')
}
const switchPageB = () => {
navigation.navigate('PageB', {
update: () => {
updateData()
}
})
}
return (
<View>
<Text>
a页面,点击进入b页面
</Text>
</View>
)
}
页面B
import React from 'react'
import {
View,
Text
} from 'react-native'
function PageB ({ navigation, route }) {
const backMethod = () => {
route.params.update()
navigation.goBack()
}
return (
<View>
<Text
onPress={() => {
backMethod()
}}
>
b页面,点击返回a页面
</Text>
</View>
)
}
感觉这个办法还挺好用的吧,而且不一定只有更新数据会用到,还可以用来用户设置当前的一个主题颜色类似的功能。