gpt4 book ai didi

javascript - 动态创建回调

转载 作者:行者123 更新时间:2023-11-28 16:56:37 25 4
gpt4 key购买 nike

我有10多个回调方法,它们的形式都是:

xCallback = (value) => {
this.setState({x: value}, () => {
this.update();
});
};

yCallback = (value) => {
this.setState({y: value}, () => {
this.update();
});
};
...

我将这些方法作为回调传递给子组件(我无法修改的第三方组件):

<ChildComponent ... callback={this.xCallback}/>

有没有办法缩短这段代码并消除重复的代码?

最佳答案

您可以接受一个附加参数,它是要更新的 key 。由于您无法更改传递给子组件的函数的签名,因此您可以使用 currying 返回具有固定签名的动态回调

const generateCb = key => value => this.setState({ [key] : value }, () => {})

return <Child callback={generateCb('x')}

其中generateCb('x')将计算为

value => this.setState({ 'x' : value }, () =>{})

关于javascript - 动态创建回调,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58960877/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com