全选和反选

您所在的位置:网站首页 购物车全选反选 全选和反选

全选和反选

#全选和反选| 来源: 网络整理| 查看: 265

class Checkboxcomponent extends React.Component{

constructor(props){

super(props);

this.state = {

chooseList : ['apple','lemon','melon','orange'],

chooseCheck : 0,

Allchoose : false,

reverseCheck : false,

isAuto : false

}

}

Allchoose(e){

if(this.state.Allchoose){

this.setState({

chooseCheck : 0,

Allchoose : false,

isAuto : false,

})

}else{

this.setState({

Allchoose : true,

chooseCheck : this.state.chooseList.length,

isAuto : false,

});

}

}

checkAllChoose(ItemChecked){

if(this.state.isAuto = true)this.state.isAuto = false;

ItemChecked ? this.state.chooseCheck++ : this.state.chooseCheck--;

console.log(this.state.chooseCheck);

if(this.state.chooseCheck == this.state.chooseList.length){

this.setState({

Allchoose : true,

isAuto : true

})

}else{

if(this.state.Allchoose == true){

this.setState({

Allchoose : false,

isAuto : true

});

}

}

}

Reversechoose(e){

let newNum = this.state.chooseList.length - this.state.chooseCheck;

if(newNum == this.state.chooseList.length){

this.setState({

Allchoose : true,

isAuto : true

})

}else{

this.setState({

Allchoose : false,

isAuto : true

})

}

this.setState({

reverseCheck : !this.state.reverseCheck,

chooseCheck : this.state.chooseList.length - this.state.chooseCheck

});

}

render(){

return (

全选

{this.Allchoose(e)}} checked = {this.state.Allchoose} />

反选

{this.Reversechoose(e)}} checked = {this.state.reverseCheck}/>

{

this.state.chooseList.map((item,idx)=>{

return (

{item}

{this.checkAllChoose(ItemChecked)}} Allchoose = {this.state.Allchoose} Reverse = {this.state.reverseCheck} isAuto = {this.state.isAuto}/>

)

})

}

)

}

}

class CheckboxItemcomponent extends React.Component{

constructor(props){

super(props);

this.state = {

checked : false,

}

}

_clickHandle(e){

this.props.checkAllChoose(!this.state.checked);

this.setState({

checked : this.state.checked ? false : true

});

}

componentWillReceiveProps(nextprops){

console.log(nextprops.isAuto);

if(nextprops.isAuto == false)this.state.checked = nextprops.Allchoose;

if(nextprops.Reverse != this.props.Reverse){

this.setState({

checked : !this.state.checked

})

}

}

render(){

return (

{this._clickHandle(e)}} />

)

}

}

---------------------

作者:流云望风

来源:CSDN

原文:https://blog.csdn.net/u012312705/article/details/81827868

版权声明:本文为博主原创文章,转载请附上博文链接!



【本文地址】


今日新闻


推荐新闻


    CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3