最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

javascript - How to hide the message after 5 sec using React.js - Stack Overflow

programmeradmin5浏览0评论

I need to hide the message inside div element after 5 sec of form submit using React.js. I am explaining my code below.

<div className="wrapper">
            <div ref={divEl => {
            this.divRef = divEl;
          }}></div>
            <form onSubmit={this.addItem}>
              <input ref={(a)=>this.inputElement=a} placeholder="enter task">
              </input>
              <button type="submit">{this.state.editKey? "Update": "Add"}</button>
            </form>
            <TodoItems entries={this.state.items} delete={this.deleteItem} edit={this.editItem}/>
          </div>
addItem(e){
    e.preventDefault();
    if(this.state.editKey){
      this.saveEditedText();
      return;
    }
    var itemArray = this.state.items;
    if (this.inputElement.value !== '') {
      itemArray.unshift({
        text:this.inputElement.value,
        key:Date.now()
      })
      this.setState({
        items:itemArray
      })
      this.divRef.innerHTML = this.inputElement.value;
      this.inputElement.value='';
      this.divRef.insertAdjacentHTML("beforeend", '<p className="textcolor">Added successfully</p>');
    }
  }

Here I have after the form is submitting the success message is showing. I need after 5 sec of showing the message will remove automatically means using timeinterval.

I need to hide the message inside div element after 5 sec of form submit using React.js. I am explaining my code below.

<div className="wrapper">
            <div ref={divEl => {
            this.divRef = divEl;
          }}></div>
            <form onSubmit={this.addItem}>
              <input ref={(a)=>this.inputElement=a} placeholder="enter task">
              </input>
              <button type="submit">{this.state.editKey? "Update": "Add"}</button>
            </form>
            <TodoItems entries={this.state.items} delete={this.deleteItem} edit={this.editItem}/>
          </div>
addItem(e){
    e.preventDefault();
    if(this.state.editKey){
      this.saveEditedText();
      return;
    }
    var itemArray = this.state.items;
    if (this.inputElement.value !== '') {
      itemArray.unshift({
        text:this.inputElement.value,
        key:Date.now()
      })
      this.setState({
        items:itemArray
      })
      this.divRef.innerHTML = this.inputElement.value;
      this.inputElement.value='';
      this.divRef.insertAdjacentHTML("beforeend", '<p className="textcolor">Added successfully</p>');
    }
  }

Here I have after the form is submitting the success message is showing. I need after 5 sec of showing the message will remove automatically means using timeinterval.

Share Improve this question asked Feb 23, 2018 at 9:33 user5443928user5443928
Add a ment  | 

2 Answers 2

Reset to default 2
setTimeout(() => {
  this.setState({
    items:itemArray
  });
}, 5000)

This will give you sometime.

else have a state to know when you are updating the data, and rerender the UI based on this

You could try

this.divRef.insertAdjacentHTML("beforeend", '<p className="textcolor">Added  successfully</p>');
setTimeout( () => {
    this.divRef.querySelector(':last-child').remove();
}, 5000);
发布评论

评论列表(0)

  1. 暂无评论