Reactjs 在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

每当输入的值发生变化时,我想在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)} ></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';//或者这个,道具,什么,什么;