如何在React中触发onBlur事件?

时间:2017-10-04 16:37:38

标签: javascript function reactjs onblur

我有一个输入字段值,我想在布尔上格式化,这是我的代码:

组件

  <Input
    onBlur={this.formatEndpoint}
  />

功能

  formatEndpoint() {
    let endpoint = this.state.inputEndpoint;

    endpoint = endpoint.replace(/\s/g, '').replace(/\/+$/, '');

    if (endpoint.slice(-1) === '/') {
      endpoint = endpoint.substring(0, endpoint.length - 1);
    }

    console.log('anything');
  }

为什么甚至console.log()都没有在布尔上工作?感谢。

2 个答案:

答案 0 :(得分:1)

感谢评论,我能够弄清楚。我必须向onBlur添加Input道具,如下所示:

export default class Input extends React.Component {
  constructor() {
    super();
    this.handleBlur = this.handleBlur.bind(this);
  }

  handleBlur() {
    const { onBlur } = this.props;
    onBlur();
  }

  render() {
    return <input onBlur={this.handleBlur} />
  }
}

Input.propTypes = {
  onBlur: PropTypes.func,
};

Input.defaultProps = {
  onBlur: () => {},
};

答案 1 :(得分:0)

经过大量搜索之后,我用以下代码做到了, 在我的情况下,我使用的是React CS6。

class test extends React.Component {
  onBlur() {
    console.log('anything');
  }


   render () {
      let { onBlur, onChange, value, ...props } = this.props;

      return (
        <input onBlur={ this.onBlur }  />
      );
  }

}