Javascript 是否传递附加参数以绑定?
我有两个类似的函数:Javascript 是否传递附加参数以绑定?,javascript,reactjs,Javascript,Reactjs,我有两个类似的函数: primaryImageLoaded () { this.setState({primaryImageLoaded: true}) } secondaryImageLoaded () { this.setState({ secondaryImageLoaded: true }) } 它们的名称如下(使用react): 这感觉太过分了,我希望只使用一个函数并将状态变量作为参数传递,但是如何将附加参数传递给?是否可以在我要传递给setStat
primaryImageLoaded () {
this.setState({primaryImageLoaded: true})
}
secondaryImageLoaded () {
this.setState({ secondaryImageLoaded: true })
}
它们的名称如下(使用react):
这感觉太过分了,我希望只使用一个函数并将状态变量作为参数传递,但是如何将附加参数传递给?是否可以在我要传递给
setState
的对象中使用变量作为键?您可以传递其他参数以绑定,这些参数将在调用函数时传递:
this.secondaryImageLoaded.bind(this,arg1,arg2)
如果您使用的是ECMAScript 2015及以后版本,则可以通过将其括在方括号中来使用:
this.setState({
[myVar]: value
});
所以你可以把它改写成:
function imageLoaded(which) {
this.setState({
[which]: true
});
}
onLoad={this.imageLoaded.bind(this, 'secondary')}
将您的参数添加为bind的第二个参数查看了吗?我以前从未见过方括号语法。您是否介意提供解释或提供更多信息的url?请注意,[]符号仅适用于ECMAScript 2015以后的版本。编辑答案澄清
function imageLoaded(which) {
this.setState({
[which]: true
});
}
onLoad={this.imageLoaded.bind(this, 'secondary')}