Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/440.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 是否传递附加参数以绑定?_Javascript_Reactjs - Fatal编程技术网

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')}