javascript ReactJS:当用户停止输入时输入fire onChange(或按下Enter键)

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了javascript ReactJS:当用户停止输入时输入fire onChange(或按下Enter键)相关的知识,希望对你有一定的参考价值。

import React, { Component } from 'react';

import TextField from 'components/base/TextField';

const WAIT_INTERVAL = 1000;
const ENTER_KEY = 13;

export default class TextSearch extends Component {
    constructor(props) {
        super();

        this.state = {
            value: props.value
        };
    }

    componentWillMount() {
        this.timer = null;
    }

    handleChange(value) {
        clearTimeout(this.timer);

        this.setState({ value });

        this.timer = setTimeout(::this.triggerChange, WAIT_INTERVAL);
    }

    handleKeyDown(e) {
        if (e.keyCode === ENTER_KEY) {
            ::this.triggerChange();
        }
    }

    triggerChange() {
        const { value } = this.state;

        this.props.onChange(value);
    }

    render() {
        const { className } = this.props;

        return (
            <TextField
                className={className}
                placeholder={l('Search')}
                value={this.state.value}
                onChange={::this.handleChange}
                onKeyDown={::this.handleKeyDown}
            />
        );
    }
}

以上是关于javascript ReactJS:当用户停止输入时输入fire onChange(或按下Enter键)的主要内容,如果未能解决你的问题,请参考以下文章

Meteor,ReactJS,MongoDB:当用户离开页面时执行某些操作

Reactjs / Graphql:在页面加载时停止执行graphql查询

如何在用户停止输入时才开始搜索?

当用户未登录时重定向到登录。 Reactjs [重复]

Javascript:取消/停止图像请求

React js停止循环背景视频