当前位置:  开发笔记 > 编程语言 > 正文

使用onBlur事件的值更新React Input文本字段

如何解决《使用onBlur事件的值更新ReactInput文本字段》经验,为你挑选了3个好方法。

我有以下输入字段如下.在模糊时,该函数调用服务来更新服务器的输入值,一旦完成,它就会更新输入字段.

我怎样才能使它工作?我能理解为什么它不会让我改变字段,但我能做些什么来使它工作?

我不能使用,defaultValue因为我会将这些字段更改为其他字段



1> Shubham Khat..:

为了使输入值可编辑,您需要有一个onChange更新值的处理程序.并且因为你想调用函数onBlur,你必须绑定它onBlur={() => this.props.actions.updateInput()}

componentDidMount() {
   this.setState({inputValue: this.props.inputValue});
}
handleChange = (e) => {
  this.setState({inputValue: e.target.value});
}

 this.props.actions.updateInput(this.state.inputValue)} />



2> Mayank Shukl..:

这样做的方法:

    不要将value属性赋值给input field,只要onblur方法触发,就像这样命中api:

    this.props.actions.updateInput(e.target.value)} />
    

更新服务器的值:

updateInput(value){
    /*update the value to server*/
}

    如果要将value属性分配给inputfield by this.props.inputValue,则使用onChangemethod,将值传递回父组件,inputValue通过setState在parent中使用更改,它将如下工作:

    this.props.onChange(e.target.value)} onBlur={()=>this.props.actions.updateInput} />
    

在父组件中:

onChange(value){
    this.setState({inputvalue:value});
}

更新服务器的值:

updateInput(value){
    /*update the value to server*/
}



3> MDiesel..:

您需要绑定onChange事件以更新您的状态.确保在构造函数中使用bind方法,这样就不会在onChange事件处理程序方法中丢失'this'上下文.然后,您需要将值传递回更新输入方法onBlur.像这样的东西:

constructor(props) {
  super(props);

  this.state = {
    inputValue: props.inputValue
  };
  this.handleChange = this.handleChange.bind(this);
};

handleChange = (e) => {
  this.setState({inputValue: e.target.value});
}

 this.props.actions.updateInput(this.state.inputValue)} 
/>


首先将道具设置为初始状态是反模式,如果你使用箭头函数你没有函数需要在构造函数中绑定
推荐阅读
135369一生真爱_890
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有