javascript - es6 类和 React 组件方法

标签 javascript reactjs ecmascript-6 components

我正在使用 React 组件和 es6。 我应该如何将 onChange 方法中的逻辑使用到其他方法中?

render() {
    let input;
    return (
<tr>  <input 
        ref = {node => { input = node; }} 
        onChange = { event => {
            if (input.value === this.props.word.pl) 
                event.currentTarget.style.backgroundColor = 'Chartreuse';
            else if (input.value !== this.props.word.pl)
                event.currentTarget.style.backgroundColor = 'LightCoral';
            else if (input.value === "")
                event.currentTarget.style.backgroundColor = 'none';
            }
        }/>

最佳答案

  1. 将函数移出组件级别

  2. 在构造函数中绑定(bind) this

  3. 在多个 onChange 事件上使用它

<小时/>
class MyComponent extends React.Component {
  constructor(props) {
    super(props);

    // bind this
    this.handleChange = this.handleChange.bind(this);
  }

  // reusable function
  handleChange(e) {
    // ... your logic for onChange here
  }

  render() { 
    return (
      <div>
        <input onChange={this.handleChange} />
        <input onChange={this.handleChange} />
      </div>
    );
  }
};

了解有关 React 表单的更多信息 here .

关于javascript - es6 类和 React 组件方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41034959/

相关文章:

javascript - 在函数react中传递默认参数值

javascript - 如何获得正确检查类型所实现的接口(interface)的流程?

css - Pie loader 2 progress colors, css, html, javascript

javascript - 根据传递的输入过滤对象数组 : Javascript

javascript - 使用 Babel 和 Rollup 转译 startsWith() 时出现问题

javascript - 解析来自 3rd 方服务器的 json 时出现问题

javascript - 没有订阅者时如何暂停 shareReplay

javascript - 如何在React中按下回车键时获取TextField值?

reactjs - 未捕获的类型错误 : _this3. chooseTopic 不是 ReactJS 的函数

javascript - Promise.resolve 对象不是构造函数