react.js操作Dom的问题

我需要实现如图所示的功能:一个动态加载的列表,更新后点击相应列表切换勾选状态,同时把当前状态用localstorage存储起来,以便下一次进入能记住之前选择。
遇到的问题:功能实现了,不过测试时发现这个点击列表事件时而触发时而不触发,视图上勾选状态变化了,但是localstorge有时不会跟着变化,刷新下可能又恢复正常,多点击几次就又出现了
https://img2.mukewang.com/5c68eec70001ab0604040199.jpg

componentDidUpdate:function(){


    

    var a = JSON.parse(window.localStorage.checked)||[];


    //阻止冒泡

    $("input:checkbox[name='chooselibs']").click(function(){

        event.stopPropagation();

    });


    //点击列表事件

    $('.listCheckBox').on('click',function(){

        var value = $(this).find("input:checkbox[name='chooselibs']").prop('checked');

        

        //选择or未选择

        if(value){

            $(this).find("input:checkbox[name='chooselibs']").prop('checked','');

            a[$(this).index()-1] = 0;

        }else{

            $(this).find("input:checkbox[name='chooselibs']").prop('checked','checked');

            a[$(this).index()-1] = 1;

        }


        window.localStorage.checked = JSON.stringify(a)    

    })

    });

},


达令说
浏览 374回答 1
1回答
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript