gpt4 book ai didi

javascript - 在 React 中绑定(bind)函数时如何传递事件参数?

转载 作者:塔克拉玛干 更新时间:2023-11-02 22:21:41 24 4
gpt4 key购买 nike

我有一个 input HTML 标签,其中 onChange 当前是

onChange={() => { this.props.someFunc(this.props.someVal, e.target.checked) }

但是,我想遵循 es-lint no-bind 规则(我想避免内联函数),并且我在处理此 onChange 函数的参数时遇到了问题。

在我的构造函数中我有:

constructor() {
super();
this.state = {
// some state
};
this._onChangeHandler = this._onChangeHandler.bind(this);
}

_this.onChangeHandler = (event, val) => {
this.props.someFunc(event.target.checked, val);
}

render() {
<div>
{
this.props.inputs.map((x) => {
const someValue = // ...a calculated value

return (
<label
}>
<input
onChange={ this._onChangeHandler(someValue) } // need BOTH someValue and the event
checked={ aBool }
type="checkbox"
value={ anotherValue }/>
<span>{ textHere }</span>
</label>
);
})
}
</div>
}

我看过this post ,但到目前为止还没有运气。我需要做什么才能将值和事件传递给绑定(bind)函数?

最佳答案

如果你使用柯里化(Currying)呢?

// Helper method that returns a function
const generateHandler = (value, method) => e => method(e, value)

// Apply the helper method
<input onChange={generateHandler(someValue, this._onChangeHandler)} />

关于javascript - 在 React 中绑定(bind)函数时如何传递事件参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42234186/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com