如何在react transform-class-properties函数调用中访问调用对象

时间:2017-11-04 19:21:30

标签: reactjs react-redux

对于react插件transform-class-properties,你可以在不进行绑定的情况下调用函数,但是使用“this”对象然后调用父类对象而不是调用obj。

所以对于这个例子。原始代码使用输入变量调用函数并更新选择。

<Select
    ...
    onChange={this.handleChange.bind(variable)}
     ...
/>

handleChange(lookupKey, event) => {
    ...
    this.set(value, 'form');
}

使用transform-class-properties版本时,它不起作用,因为“this”对象是父类对象。

<Select
    ...
    onChange={this.handleChange(variable)}
     ...
/>

handleChange = (lookupKey) => (event) => {
    ...
    // no longer works
    this.set(value, 'form');
}

调用对象是否像原始一样被传递或访问,而不必知道它在道具中的位置?

1 个答案:

答案 0 :(得分:0)

当它转变时,我认为我没有提供足够的例子来理解答案,但我能够理清我的问题。

发生的事情是绑定将第一个变量分配给&#34;这个&#34;。

<Select
    ...
    onChange={this.handleChange.bind(obj, variable)}
    ...
/>

handleChange(lookupKey, event) => {
    ...
    this.set(value, 'form');
}

使用transform-class-properties版本,这不会发生。我需要做的就是将第一个变量设置为调用函数的第一个变量,然后使用它代替&#34;这个&#34;。

<Select
    ...
    onChange={this.handleChange(obj, variable)}
    ...
/>

handleChange = (obj, lookupKey) => (event) => {
    ...
    obj.set(value, 'form');
}