我正在使用REACT中的setState方法,并且代码中几乎每个setState调用都类似于以下内容:
this.setState({..some_stuff...}, ()=> some_standard_method(this.state));
这自然暗示着,如果我有一种形式的方法
customSetState(args) {
this.setState(args, () => some_standard_method(this.state));
}
然后,通过将下面的每个setState调用替换为下面的代码,可以使代码的详细程度降低很多
customSetState(...some_stuff...).bind(this)
但是我不确定如何编写此方法。我的意思是,setState方法不完全采用单个变量,而是指定了任意参数的任意对象。所以在这一行:
customSetState(args) { ...
我是否需要对输入变量“ args”进行任何更改以表明我正在接受任意定义的对象?
答案 0 :(得分:0)
这是一个简单的示例,说明如何使用散布运算符和rest参数实现该目标:
function setStateSimulation(...args) {
console.log(`My three parameters are ${args[0]}, ${args[1]} and ${args[2]}`);
const callback = args[args.length - 1];
callback();
}
function myCustomSetStateSimulation(...args) {
setStateSimulation(...args, () => {
console.log('My custom callback');
});
}
myCustomSetStateSimulation("a", "B", "c");