有时候我们需要每次单独设置众多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的实际就是字符串;
=================================================我是华丽的分割线==========================================================
然后经过思考,发现可以尝试使用数组的形式,方法如下