javascript - 如何在 React 中触发 onBlur 事件?

标签 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() 都不能在 onBlur 上工作?谢谢。

最佳答案

多亏了评论,我才明白了。我必须向 Input 添加一个 onBlur 属性,如下所示:

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: () => {},
};

关于javascript - 如何在 React 中触发 onBlur 事件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46569939/

相关文章:

javascript - 用于 URL 检测的反向正则表达式

java - 我想知道方法背后的实际实现,例如 : To create a file in Java, 使用 createNewFile()

python - 是否可以保存函数的返回值以供下次调用时使用?

mysql - 添加由分隔符分隔的非 1NF 格式的值的函数/过程

javascript - Nashorn + React Js 用于服务器端渲染的生产建议

reactjs - 为什么我的 React Redux TypeScript 应用程序可以在除 iPhone 6 iOS 12.0.1 以外的任何地方运行(它是一个空白的白屏)?

JavaScript 使用带有 .match 正则表达式的变量

javascript - jest.fn().mockReturnValue ("hello") 在 beforeAll() 中调用但不在 beforeEach() 中调用时返回未定义

reactjs - 在 NestJS 中连接后,Socket.io 客户端断开连接

javascript - 来自 Chrome 扩展的跨源 XMLHttpRequest 返回状态 0