dcloudio / dcloudio/uni-app

H5中刷新页面后uni.chooseLocation无法绑定数据

Open
#2,264 0 comments 0 reactions 0 assignees View on GitHub
h5 提供了复现方案
Dominant language
JavaScript
Stars
41.6k
Forks
3.7k
Avg merge
7h 6m
Merged PRs (30d)
6

Description

**问题描述**
在h5平台刷新页面后再调用uni.chooseLocation无法绑定数据

**复现步骤**
1. 刷新页面
2. navigateTo跳转任意页面
3. 后退回来
4. 导致系统组件invoke的回调在created之前被调用从而无法对data数据进行绑定

**代码**
```

{{address}}
选择地址

export default {
data() {
return {
address: ''
}
},
created() {
console.log('created')
},
methods: {
chooseLocation() {
const self = this
uni.chooseLocation({
success(res) {
console.log(JSON.stringify(res))
self.address = res.address
}
})
}
}
}

```

**预期结果**
不管在当前页面是否刷新,chooseLocation的回调都应该被绑定到data中

**实际结果**
在当前页面刷新后再chooseLocation的回调将无法被绑定,第二次chooseLocation后才能被绑定

**系统信息:**
```
uni-app v2.9.3
uni-app cli v2.0.0-29320201014001

Environment Info:

System:
OS: macOS 10.14.6
CPU: (8) x64 Intel(R) Core(TM) i7-4770HQ CPU @ 2.20GHz
Binaries:
Node: 14.3.0 - /usr/local/bin/node
Yarn: 1.22.4 - /usr/local/bin/yarn
npm: 6.14.4 - /usr/local/bin/npm
Browsers:
Chrome: Not Found
Firefox: Not Found
Safari: 12.1.2
npmPackages:
@dcloudio/types: * => 2.0.14
@dcloudio/uni-app-plus: ^2.0.0-28920200907001 => 2.0.0-29320201014001
@dcloudio/uni-app-plus-nvue: 0.0.1
@dcloudio/uni-app-plus-nvue-v8: 0.0.1
@dcloudio/uni-automator: ^2.0.0-28920200907001 => 2.0.0-29320201014001
@dcloudio/uni-cli-shared: ^2.0.0-28920200907001 => 2.0.0-29320201014001
@dcloudio/uni-h5: ^2.0.0-28920200907001 => 2.0.0-29320201014001
@dcloudio/uni-helper-json: * => 1.0.6
@dcloudio/uni-migration: ^2.0.0-28920200907001 => 2.0.0-29320201014001
@dcloudio/uni-mp-360: ^2.0.0-28920200907001 => 2.0.0-29320201014001
@dcloudio/uni-mp-alipay: ^2.0.0-28920200907001 => 2.0.0-29320201014001
@dcloudio/uni-mp-baidu: ^2.0.0-28920200907001 => 2.0.0-29320201014001
@dcloudio/uni-mp-qq: ^2.0.0-28920200907001 => 2.0.0-29320201014001
@dcloudio/uni-mp-toutiao: ^2.0.0-28920200907001 => 2.0.0-29320201014001
@dcloudio/uni-mp-vue: ^2.0.0-28920200907001 => 2.0.0-29320201014001
@dcloudio/uni-mp-weixin: ^2.0.0-28920200907001 => 2.0.0-29320201014001
@dcloudio/uni-quickapp-native: ^2.0.0-28920200907001 => 2.0.0-29320201014001
@dcloudio/uni-quickapp-webview: ^2.0.0-28920200907001 => 2.0.0-29320201014001
@dcloudio/uni-stat: ^2.0.0-28920200907001 => 2.0.0-29320201014001
@dcloudio/uni-template-compiler: ^2.0.0-28920200907001 => 2.0.0-29320201014001
@dcloudio/vue-cli-plugin-hbuilderx: ^2.0.0-28920200907001 => 2.0.0-29320201014001
@dcloudio/vue-cli-plugin-uni: ^2.0.0-28920200907001 => 2.0.0-29320201014001
@dcloudio/vue-cli-plugin-uni-optimize: ^2.0.0-28920200907001 => 2.0.0-29320201014001
@dcloudio/webpack-uni-mp-loader: ^2.0.0-28920200907001 => 2.0.0-29320201014001
@dcloudio/webpack-uni-nvue-loader: 0.0.1
@dcloudio/webpack-uni-pages-loader: ^2.0.0-28920200907001 => 2.0.0-29320201014001
@hap-toolkit/dsl-vue: 0.6.13
@vue/babel-helper-vue-jsx-merge-props: 1.2.1
@vue/babel-helper-vue-transform-on: 1.0.0-rc.2
@vue/babel-plugin-jsx: 1.0.0-rc.3
@vue/babel-plugin-transform-vue-jsx: 1.2.1
@vue/babel-preset-app: 4.5.8
@vue/babel-preset-jsx: 1.2.3
@vue/babel-sugar-composition-api-inject-h: 1.2.1
@vue/babel-sugar-composition-api-render-instance: 1.2.1
@vue/babel-sugar-functional-vue: 1.2.2
@vue/babel-sugar-inject-h: 1.2.2
@vue/babel-sugar-v-model: 1.2.3
@vue/babel-sugar-v-on: 1.2.3
@vue/cli-overlay: 4.5.8
@vue/cli-plugin-babel: ~4.5.0 => 4.5.8
@vue/cli-plugin-router: 4.5.8
@vue/cli-plugin-vuex: 4.5.8
@vue/cli-service: ~4.5.0 => 4.5.8
@vue/cli-shared-utils: 4.5.8
@vue/component-compiler-utils: 3.2.0 (3.2.0)
@vue/preload-webpack-plugin: 1.1.2
@vue/shared: ^3.0.0-rc.4 => 3.0.2
@vue/web-component-wrapper: 1.2.0
mpvue-page-factory: 1.0.1
mpvue-template-compiler: 1.0.13
uni-h5-vue: 2.6.10
uni-mp-vue: 2.6.10
vue: ^2.6.11 => 2.6.12
vue-hot-reload-api: 2.3.4
vue-loader: 15.9.3 (16.0.0-beta.8, 15.9.3)
vue-router: 3.0.1
vue-style-loader: 4.1.2
vue-template-compiler: ^2.6.11 => 2.6.12 (2.6.12)
vue-template-es2015-compiler: 1.9.1
vuex: ^3.2.0 => 3.5.1
npmGlobalPackages:
@vue/cli: Not Found
```

**补充信息**
### 出现问题的原因是
在h5中刷新当前页面后再navigateTo跳转到别的路由后再后退到当前页面,该页面又会被创建一次,之前那个页面栈无法再操作,再次跳转回来将不会再创建一次,只有首次回到刷新的页面会被再次创建

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.