假设我有一个功能:
function onSomethingChanged(field, evt) {
this.validate(field, evt.target.value);
}
我有一个React组件:
<input onChanged={this.onSomethingChanged.bind(null, "username")} />
this
作为thisArg传递,我的null
是否会得到保留?this
的情况下保存它(不写this.onSomethingChanged.bind(this, "username")
)。谢谢!
答案 0 :(得分:1)
不,函数的上下文(this
)在strict mode
中为null
,在window
模式下为全局对象(non-strict
)
如果您不喜欢bind
方法,可以使用ES6 arrow functions来解决此问题:
<input onChanged={()=>this.onSomethingChanged("username")} />
或者如果你不喜欢括号:
<input onChanged={$=>this.onSomethingChanged("username")} />
其中$
是事件对象(可以由e
或您喜欢的任何其他角色替换。)
答案 1 :(得分:0)
没有。这是过去任何函数的第一个参数。通过传入null,你说这是null。
改为做。
<input onChanged={this.onSomethingChanged.bind(this, "username")} />