高阶函数就是传递的参数为一个函数,或者返回的也是一个函数,如Promise,settimeout,setInterval 函数柯里化就是函数式变成,函数链式调用
<!DOCTYPE html><html lang="en"><head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title></head><body><div id="app"></div><div id="app1"></div><script src="../js/react.development.js"></script><script src="../js/react-dom.development.js"></script><script src="../js/babel.min.js"></script><script src="../js/prop-types.js"></script><script type="text/babel">class Input extends React.Component {// {/*这里如果onChange接受的是一个函数,则它的参数为e(react的事件处理对象),如果接受的是一个函数调用,*/}// {/*则没有事件处理对象,因此需要让函数中返回一个函数,内层函数的参数则为事件处理对象,外层传递的是一些需要从外部传递的参数*/}useFormHandle = (dataType) => {//返回一个函数,函数中的参数是一个事件对象return (e) => {this.setState({//这里的属性名是变量,用[][dataType]: e.target.value})}}render() {return (<form onSubmit={this.submitHandle}>用户名: <input type="text" placeholder="请输入用户名" ref={c => this.input1 = c} name="username" onChange={this.useFormHandle("username")} />密码: <input type="password" placeholder="请输入密码" ref={c => this.input2 = c} name="password" onChange={this.useFormHandle("password")} /><button>提交</button></form>)}}ReactDOM.render(<Input />, document.getElementById("app"))</script></body></html>
高阶函数可以是函返回函数,在react中如果需要在通过事件函数传参
第一种是传递一个函数,其中函数的参数,可以设置成我们需要传递的参数第二种高阶函数,调用事件函数,返回一个函数,外层函数的参数可以为需要传递的参数,内层有一个e,事件独享可以进行操作。
