wechat-miniprogram / kbone-ui

kbone-ui 是一套能同时支持 小程序(kbone) 和 vue 框架开发的多端 UI 库(PS:新版 kbone-ui 已出炉并迁移到 kbone 主仓库,此仓库仅做旧版维护之用)
https://wechat-miniprogram.github.io/kbone/docs/ui/intro/
MIT License
442 stars 45 forks source link

KPickerView on change not working in mp mode #14

Open lawrenceadv009 opened 4 years ago

lawrenceadv009 commented 4 years ago

vue 2.6.11, kbone-ui 0.6.2

<template>
  <div class="cnt">
    <Header></Header>
    <div>
      <KPickerView
        indicator-style="height: 50px;"
        style="width: 100%; height: 300px;"
        @change="changeIndex"
      >
        <KPickerViewColumn>
          <KView
            v-for="(item,index) in singleData"
            style="line-height: 50px;"
            :key="index"
          >
            {{item}}
          </KView>
        </KPickerViewColumn>
      </KPickerView>
    </div>
    <!-- vue-improve-loader -->
    <div check-reduce>
      <p>这段话不会在小程序里显示</p>
      <p>在构建的时候就会被 vue-improve-loader 给干掉了</p>
    </div>
    <!-- reduce-loader -->
    <Web>
      <p>这段话也不会在小程序里显示</p>
      <p>在构建的时候就会被 reduce-loader 给干掉了</p>
    </Web>
    <!-- 样式隐藏 -->
    <div class="for-web">
      <p>这段话也不会在小程序里显示</p>
      <p>在渲染时会被样式隐藏</p>
    </div>
    <Footer></Footer>
  </div>
</template>

<script>
import Vue from 'vue'
import Header from '../common/Header.vue'
import Footer from '../common/Footer.vue'
import Web from 'reduce-loader!../common/Web.vue'
import 'reduce-loader!./web'
import { KPickerView, KView, KPickerViewColumn } from 'kbone-ui'

export default Vue.extend({
  name: 'Home',
  components: {
    Header,
    KPickerView,
    KPickerViewColumn,
    Footer,
    Web,
  },
  data() {
    return {
      singleData: ['a', 'b', 'c', 'd']
    }
  },
  created() {
    window.addEventListener('wxload', query => console.log('page1 wxload', query))
    window.addEventListener('wxshow', () => console.log('page1 wxshow'))
    window.addEventListener('wxready', () => console.log('page1 wxready'))
    window.addEventListener('wxhide', () => console.log('page1 wxhide'))
    window.addEventListener('wxunload', () => console.log('page1 wxunload'))

    if (process.env.isMiniprogram) {
      console.log('I am in miniprogram')
    } else {
      console.log('I am in Web')
    }
  },
  methods: {
    changeIndex(e) {
      console.log('changeIndex', this.singleData[e])
    },
    onClickJump() {
      window.location.href = '/test/list/123'
    },

    onClickOpen() {
      window.open('/test/detail/123')
    },
  },
})
</script>

<style lang="less">
.cnt {
  margin-top: 20px;
}

a,
button {
  display: block;
  width: 100%;
  height: 30px;
  line-height: 30px;
  text-align: center;
  font-size: 20px;
  border: 1px solid #ddd;
}

.miniprogram-root {
  .for-web {
    display: none;
  }
}
</style>
uemuki commented 4 years ago

我也遇到了这个问题

JimmyVV commented 4 years ago

这里我跟一下看看

rushairer commented 4 years ago

我也遇到了这个问题 +1

 "dependencies": {
    "kbone-ui": "^0.6.7",
    "vue": "^2.5.2",
    "vue-router": "^3.0.1",
    "vuex": "^3.1.2",
    "vuex-router-sync": "^5.0.0"
  },
  "devDependencies": {
    "autoprefixer": "^7.1.2",
    "babel-core": "^6.22.1",
    "babel-eslint": "^8.2.1",
    "babel-helper-vue-jsx-merge-props": "^2.0.3",
    "babel-loader": "^7.1.1",
    "babel-plugin-dynamic-import-node": "^1.2.0",
    "babel-plugin-syntax-jsx": "^6.18.0",
    "babel-plugin-transform-es2015-modules-commonjs": "^6.26.0",
    "babel-plugin-transform-runtime": "^6.22.0",
    "babel-plugin-transform-vue-jsx": "^3.5.0",
    "babel-preset-env": "^1.3.2",
    "babel-preset-stage-2": "^6.22.0",
    "cross-env": "^6.0.3",
    "css-loader": "^3.4.0",
    "cssnano": "^4.1.10",
    "eslint": "^4.15.0",
    "eslint-config-airbnb-base": "^11.3.0",
    "eslint-friendly-formatter": "^3.0.0",
    "eslint-import-resolver-webpack": "^0.8.3",
    "eslint-loader": "^3.0.3",
    "eslint-plugin-import": "^2.19.1",
    "eslint-plugin-vue": "^4.0.0",
    "file-loader": "^1.1.4",
    "friendly-errors-webpack-plugin": "^1.6.1",
    "html-webpack-plugin": "^3.2.0",
    "less": "^3.10.3",
    "less-loader": "^5.0.0",
    "mini-css-extract-plugin": "^0.5.0",
    "mp-webpack-plugin": "latest",
    "node-notifier": "^5.1.2",
    "optimize-css-assets-webpack-plugin": "^5.0.3",
    "portfinder": "^1.0.25",
    "postcss-loader": "^2.0.8",
    "reduce-loader": "^0.1.1",
    "rimraf": "^2.7.1",
    "terser-webpack-plugin": "^2.3.0",
    "thread-loader": "^2.1.3",
    "ts-loader": "^6.2.1",
    "typescript": "^3.7.3",
    "url-loader": "^0.5.8",
    "vue-improve-loader": "^0.1.1",
    "vue-loader": "^15.7.2",
    "vue-style-loader": "^4.1.2",
    "vue-template-compiler": "^2.6.10",
    "webpack": "^4.41.2",
    "webpack-cli": "^3.3.10",
    "webpack-dev-server": "^3.9.0",
    "webpack-merge": "^4.1.0"
  },
JimmyVV commented 4 years ago

我这里未能复现,能详细说明下么?参考如下 demo https://wechat-miniprogram.github.io/kboneui/ui/#/picker