Meituan-Dianping / mpvue

基于 Vue.js 的小程序开发框架,从底层支持 Vue.js 语法和构建工具体系。
http://mpvue.com
MIT License
20.42k stars 2.07k forks source link

slot中组件数据无法渲染 #409

Open The-five-stooges opened 6 years ago

The-five-stooges commented 6 years ago

slot中组件数据无法渲染

问题复现步骤:

1.parent组件

<template>
    <div class="parent">
      <slot></slot>
    </div>
</template>

<script>
    export default {}
</script>

<style scoped lang="stylus" rel="stylesheet/stylus">
  .parent
    background: black
    width: 200px
    height: 200px
</style>

2.子组件

<template>
  <div class="test" :class="retSize">
    {{score}}-{{retSize}}
  </div>
</template>

<script>
  export default {
    props: {
      score: {
        type: Number,
        default: 0
      },
      size: {
        type: Number,
        default: 24
      }
    },
    computed: {
      retSize () {
        return 'size-' + this.size
      }
    }
  }
</script>

<style scoped lang="stylus" rel="stylesheet/stylus">
  .test
    font-size: 18px
    display: inline-block
    margin: 0 auto
    color: white
</style>
  1. 调用页面
    <parent>
      <test></test>
    </parent>

期望的表现:

<view class="_div data-v-466abbb3 test size-24"> 0-size-24 </view>

观察到的表现:

<view class="_div data-v-466abbb3 test"> - </view>

屏幕截图和动态 GIF 图

7f8c0f8a-7b72-46ba-abb5-996e1ae24d2a 7021d7d2-885c-45dd-84bd-fc7cb40b28b9

wqzwh commented 6 years ago

我也测试过,目前好像不支持这个,只能通过props,关注功能开发

yzw2017 commented 6 years ago

mpvue官网说不支持组件的slot 感觉没爱了 原生小程序官网是支持模板slot的

AutoMantou commented 6 years ago

没办法,只能曲线救国了

Stupidism commented 6 years ago

@AutoMantou @The-five-stooges 请看 #427

The-five-stooges commented 6 years ago

感谢

hughfenghen commented 6 years ago

解决方式 例子: https://github.com/Meituan-Dianping/mpvue/issues/526#issuecomment-406567787

Stupidism commented 6 years ago

mpvue 问题太多, 最好不要用了 直接用 web-view 吧

mpvue-bot[bot] commented 6 years ago

issue超过30天无更新或响应,7天后将自动关闭,如果问题状态有更新请及时更新issue