首页 > 代码库 > 解决react不能往setState中传key作为参数的办法
解决react不能往setState中传key作为参数的办法
有时候我们需要每次单独设置众多state中的一个,但是,都是进行相同的操作,这时候如果每个值都要单独写一个相同的函数的话,违背了don‘t repeat yourself的原则,并给日后的维护埋下了极大的隐患。
这时我们就会想向上抽取,把每次不同的key传递给这个函数,就像下面这样:
this.state = {
visibleA: false,
visibleB: false,
visibleC: false,
}
<button onClick = {this.handleClick.bind( this, "visibleA" )}>
handleClick( key ) {
this.setState({
key : fooArr,
});
}
但是因为key不能作为参数传递,然后会无效;因为我们传递给key的实际就是字符串;
=================================================我是华丽的分割线==========================================================
然后经过思考,发现可以尝试使用数组的形式,方法如下
this.state = {
//设置状态
visibleAll: [false, false,false],
}
<button onClick = {this.handleClick.bind( this, 0 )}> //这时候可以往里面传入数组下标,然后就实现了功能的复用
handleClick( i ) {
let fooArr = this.state.visibleAll;
fooArr[ i ] = !fooArr[ i ];
this.setState({
visibleAll: fooArr,
});
}
总结:然后不能传入key值,但是可以通过把需要操作的值放入一个数组中,这样我们就可以对整个数组中的一个值或者多个值,实现一个函数对其进行操作;实现复用功能。
解决react不能往setState中传key作为参数的办法
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。