Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/426.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(ReactJS),如何执行函数的引用_Javascript_Reactjs - Fatal编程技术网

javascript(ReactJS),如何执行函数的引用

javascript(ReactJS),如何执行函数的引用,javascript,reactjs,Javascript,Reactjs,如果我想在onClick中使用一个函数,例如 handleSort = (items) => () => { console.log('now') } *使用ReactJS和语义UI <Table.HeaderCell onClick={this.handleSort(items)} > 那么,如何在onClick事件之外执行此函数?什么不起作用: componentDidMount() { this.handleSort.call(items);

如果我想在
onClick
中使用一个函数,例如

handleSort = (items) => () => {
    console.log('now')
}
*使用ReactJS和语义UI

<Table.HeaderCell
  onClick={this.handleSort(items)}
>
那么,如何在onClick事件之外执行此函数?什么不起作用:

componentDidMount() {
    this.handleSort.call(items);
    this.handleSort(items);
}

handleSort
返回一个函数,您需要使用
()
调用它,如下所示:

componentDidMount() {
    this.handleSort(items)();
}

我猜您正在尝试执行将“now”记录到控制台的内部函数

作为澄清:
this.handleSort(items)
返回一个匿名函数:
()=>{
console.log('now')
}

为了调用它,您可以执行:
this.handleSort(items)(
以立即调用内部函数

见:

var handleSort=(项目)=>()=>{
console.log('now')
}
//保存内部功能部件
var innerFunction=handleSort([]);
log(innerFunction.toString());
//直接调用它的等效方法
innerFunction();

handleSort([])()一点也不,只是一个简单的疏忽:)您得到了答案,但据我所知,这并不是通过引用使用函数。您正在这里执行函数。因此,每当呈现
Table.HeaderCell
时,每次都会重新创建此函数。如果您这样做是为了使用
作为参数,那么可能有更好的方法。例如,如果
处于您的状态或来自道具,您可以直接使用它,而不是使用curry函数。