Reactjs 在React中,如何将输入值传递给回调函数?
每当输入的值发生变化时,我想在React组件中调用一些回调 简化示例应说明: 在Reactjs 在React中,如何将输入值传递给回调函数?,reactjs,redux,react-jsx,react-redux,Reactjs,Redux,React Jsx,React Redux,每当输入的值发生变化时,我想在React组件中调用一些回调 简化示例应说明: 在jsx文件中: <input onKeyDown={this.props.changeCallback( VALUE_OF_INPUT )} ></input> 输入的值应该是什么 谢谢 <input value={this.state.value} onKeyDown={this.props.changeCallback.bind( this, this.state.value
jsx
文件中:
<input onKeyDown={this.props.changeCallback( VALUE_OF_INPUT )} ></input>
输入的值应该是什么
谢谢
<input value={this.state.value} onKeyDown={this.props.changeCallback.bind( this, this.state.value)} ></input>
我会做这项工作。
我会做这项工作。关于这一点没有太多具体的反应。使用传递给回调的事件
作为第一个参数:
onKeyDown={event => this.props.changeCallback(event.target.value)}
这种方法(使用a)还处理绑定此
,代价是每次渲染创建一个新的匿名函数。请注意,调用bind
本质上做的是相同的事情,因此这是我的首选选项
区分将函数分配给onKeyDown
属性(如下所示)和调用函数(您所做的操作)是很重要的。关于这一点,没有太多具体的说明。使用传递给回调的事件
作为第一个参数:
onKeyDown={event => this.props.changeCallback(event.target.value)}
这种方法(使用a)还处理绑定此
,代价是每次渲染创建一个新的匿名函数。请注意,调用bind
本质上做的是相同的事情,因此这是我的首选选项
区分将函数分配给onKeyDown
属性(如此处所述)和调用函数(如您所做的)是很重要的。另一种动态执行的方法是给它一个值回调,如果预先填充某个变量的“值”,则效果很好
/* Better function for larger forms */
handleChange = (event) => {
var name = event.target.name;
var value = event.target.value;
this.setState({[name]: value});
}
/* set Default and callback to state */
valueCallback = (value, name) => {
if (this.state[name]) {
return this.state[name]
}
else {
return value;
}
}
然后你可以去
var defaut = '1234'; // or this.props.something.something;
<input type={type} name={name} value={this.valueCallback(defaut, name)} onChange={this.handleChange} />
var defaut='1234';//或者这个,道具,什么,什么;
另一种动态执行的方法是给它一个值回调,如果预先填充来自某个变量的“值”,那么这种方法效果很好
/* Better function for larger forms */
handleChange = (event) => {
var name = event.target.name;
var value = event.target.value;
this.setState({[name]: value});
}
/* set Default and callback to state */
valueCallback = (value, name) => {
if (this.state[name]) {
return this.state[name]
}
else {
return value;
}
}
然后你可以去
var defaut = '1234'; // or this.props.something.something;
<input type={type} name={name} value={this.valueCallback(defaut, name)} onChange={this.handleChange} />
var defaut='1234';//或者这个,道具,什么,什么;