3.8的spine换装问题

3.8版本,通过addSkin实现换装代码如下
this._skl.setAnimationCacheMode(sp.Skeleton.AnimationCacheMode.PRIVATE_CACHE);

    let sd = this._skl.skeletonData.getRuntimeData(false);

    let skin = sd.findSkin("default");

    for(let i=0;i<skins.length;++i){

        if( skins[i] ){

            let skn = sd.findSkin(skins[i]);

            if(skn){

                skin.addSkin(skn);

                //this.addSkin(skin,skn);

            }

        }

    }

    this._skl.setSkin("default");

只有在第一次设置的时候有效,后面换了动作播放的时候,就回到初始的skin状态,然后回到设置皮肤时候的那个动作,又有对应的皮肤了,请问什么原因;2.4的版本貌似可以这么实现