taro中函数组件中点击Taro.navigateBack()返回上一页,点击时如何刷新上一页
时间: 2024-05-06 20:16:05 浏览: 272
在 Taro 中,从上一页返回时,上一页的 `componentWillReceiveProps` 生命周期函数不会被触发,因此默认情况下是不会刷新上一页的。但是你可以在上一页的 `componentDidShow` 生命周期函数中添加一些逻辑来实现返回时刷新的效果。
具体实现如下:
1. 在需要刷新的页面的 `componentDidShow` 函数中添加一个标记变量 `needRefresh`,并在组件 state 中定义该变量。
```jsx
class MyPage extends Component {
state = {
needRefresh: false
}
componentDidShow() {
if (this.state.needRefresh) {
// 执行刷新逻辑
this.setState({
needRefresh: false
})
}
}
// ...其他代码
}
```
2. 在需要返回的页面中使用 `Taro.navigateBack` 函数,并在 `success` 回调函数中将标记变量 `needRefresh` 置为 `true`。
```jsx
class NextPage extends Component {
handleClickBack() {
Taro.navigateBack({
success: () => {
const pages = Taro.getCurrentPages()
const prevPage = pages[pages.length - 2]
prevPage.setState({
needRefresh: true
})
}
})
}
// ...其他代码
}
```
这样,在返回到上一页时,就会触发 `componentDidShow` 函数,从而实现返回时刷新的效果。
阅读全文