我需要两个函数绑定在两个按钮。他们是如此相似,只有一个字符串是不同的。
const onClickLoginA = (): void => {
const loginURI = `http://.../.../A`;
window.open(loginURI, `Login with A`);
}
const onClickLoginB = (): void => {
const loginURI = `http://.../.../B`;
window.open(loginURI, `Login with B`);
}
在C++中,我可以用
template <string str>
void onClickLogin()
{
const string uri = "http://.../.../" + str;
system("open " + uri);
}
有没有简单的方法可以将这两个函数合并为一个,而不需要任何参数?
∮我的解决方案∮
function onClickLogin(target) {
return () => {
const loginURL = `http://.../.../{target}`;
window.open(loginURL, `Login with {target}`);
}
}
const onClickLoginA = onClickLogin(A);
const onClickLoginB = onClickLogin(B);
1条答案
按热度按时间mmvthczy1#
您可以使用以下方法:
Playground
如果你可以使用全局变量,你可以坚持使用这个解决方案。否则我建议你使用
suffix
作为参数。我假设
onClickLoginA
是一个按钮上的回调/事件处理程序,如果你想给回调提供一个参数,你可以使用这个方法:或者您可以
curry
您的函数:上述示例是
react
中的常见模式。