求助 Vue3 用 reactive 绑定数组后 v-for 不渲染 dom - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Richard14
V2EX    问与答

求助 Vue3 用 reactive 绑定数组后 v-for 不渲染 dom

  •  
  •   Richard14 2023-02-15 18:42:01 +08:00 1146 次点击

    这是一个创建于 1036 天前的主题,其中的信息可能已经有所发展或是发生改变。

    应该是一个低级问题,自己看了半天没看出来哪里不对,求助一下万能的 v 友。

    希望实现的效果:自定义了一个<Card />组件,后端返回一个[]数组,希望 v-for 按照数组内容渲染 card 组件。

    目前 Card 组件正常引入,比如<Card />这句 dom 是正常渲染的,但是如果用 v-for 绑定数据后则不渲染任何东西,出错代码如下:

    <template> //... <Card v-for="(item, index) in items"></Card> //... </template> // script 部分代码是先引入 reactive ,初始化一个空数组,然后 axios 获取到的后端数据加入数组的 value import {onMounted, reactive} from 'vue' const items = reactive([]) onMounted(() => { axios({ // 请求部分都是正常的,通过.then(console.log(res))能正常显示数据 }) .then(res => { if (res["data"]["success"]===true) { items.value = res["data"]["array"] } }) }) 

    理论上按照我的想法,items.value = res["data"]["array"]这句之后应该 dom 就会渲染了,我通过 log 查看这个 value 也确实是正常的返回值而不是空值,但是实际上 dom 还是啥也没有,咋回事儿呢?

    4 条回复    2023-02-15 19:38:37 +08:00
    noe132
        1
    noe132  
       2023-02-15 18:47:42 +08:00
    你设置的是 items 的 value 属性
    而不是往 items 里 push 值。
    就好比
    const arr = []
    arr.value = blablabla
    arr.length // 0
    joe237
        2
    joe237  
       2023-02-15 19:08:56 +08:00
    呃,你这是 reactive 和 ref 分不清楚呀
    bgm004
        3
    bgm004  
       2023-02-15 19:23:52 +08:00 via Android
    要不你去看看文档?reactive 有.value?如果不是记错了,建议重学 js 。
    Richard14
        4
    Richard14  
    OP
       2023-02-15 19:38:37 +08:00
    @noe132 @joe237 谢谢,解决了


    @Track13 重学倒不至于吧,因为根本也没学过,所以没有网友们攻击性强
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     968 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 27ms UTC 19:09 PVG 03:09 LAX 11:09 JFK 14:09
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86