帖子
帖子
用户
博客
课程
显示全部楼层

[App引擎] avm 向子组件传参问题

[复制链接]
发表于 2022-6-2 15:20:01
我定义了一个子组件,初始化的时候能传递参数,然后点击事件后参数不能传递过去了
629864271dc87.png

629864417408a.png

62986455705af.png

<!--抽屉  v-bind:v-show="this.data.hidden"-->
<template>
    <view class="my-drawer-main" v-show="displaystate">
        <view class="my-drawer">
            <view class="my-drawer-left" style="leftStyle" @click="leftClick">
            </view>
            <view class="my-drawer-right" style="rightStyle" @click="rightClick">
                <text v-bind:text="text"></text>
            </view>
        </view>
    </view>
</template>
<script>
export default {
    name: 'my-drawer',
    data() {
        // const current = this.props.state;
        // const style = "width:100%;transition:width 2s;"
        // if (current) {

        // }
        debugger
        return {
            leftStyle: this.props.leftStyle,
            rightStyle: this.props.rightStyle,

            displaystate: this.props.displaystate,
            text: this.props.msg
        }
    },
    props: {
        leftStyle: String,
        rightStyle: String,
        displaystate: Boolean,
        msg: String
    },

    methods: {
        installed() {//like created
            console.log(this.data.displaystate);
        },
        updated() {
            console.log(this.data.displaystate);
        },
        leftClick() {//点击空白处关闭抽屉
            // this.data.displaystate = false;
            this.fire("leftClick", "");

        },
        rightClick() {
            console.log(this.data.displaystate);
            console.log(this.data.text);
            // this.data.text="测试更改"
            // console.log(this.data.text);
        }
    }
}
</script>
<style>
.my-drawer-main {
    width: 100%;
    height: 100%;
    /* position: absolute; */
}
.my-drawer {
    height: 100%;
    width: 100%;
    display: flex;
    flex-direction: row;
}
.my-drawer-left {
    width: 20%;
    background-color: #000000;
    opacity: 0.5;
}
.my-drawer-right {
    flex: 1;
    background-color: #ffffff;
}
</style>


这边测试下你的代码
我是这样传递的
629878d4022f3.png

629878e753c53.png
380
帖子
4
勋章
6
Y币
直接这样写就可以,感觉是props 不会更改data里面的值,如果页面绑定的data就没有生效
6298811c5cc0d.png

6298814410578.png
我测试一下你的代码
28
帖子
1
勋章
1万+
Y币
子组件中用计算属性试试,别放 data 里。或者直接在属性里面写:
<view class="my-drawer-main" v-show={this.props.displaystate}>
您需要登录后才可以回帖 登录

本版积分规则