Javascript 如何在不使用reactjs中的引用的情况下重置字段的值?

Javascript 如何在不使用reactjs中的引用的情况下重置字段的值?,javascript,reactjs,Javascript,Reactjs,我是一个新的反应,我认为这是一个愚蠢的问题问,但太 我有一个文本字段的通用输入组件,其中我没有传递引用,我想在单击按钮时重置文本字段的值?是否可以在单击时清除字段值而不传递引用 handleClick : function(change){ change.preventDefault(); var self=this; if(this.state.newpwd === this.state.cfmpass){ var pass = {"pwd":self.state.newpwd}; v

我是一个新的反应,我认为这是一个愚蠢的问题问,但太 我有一个文本字段的通用输入组件,其中我没有传递引用,我想在单击按钮时重置文本字段的值?是否可以在单击时清除字段值而不传递引用

handleClick : function(change){
change.preventDefault();
var self=this;
if(this.state.newpwd === this.state.cfmpass){
  var pass = {"pwd":self.state.newpwd};
  var url = "xyz"
  Request.PatchRequest(url,pass,function(response){
    self.setState({
      authMsg : JSON.parse(response.response).data
    });
现在如何清除此处的字段值??

<TextBox type="password"
                name="password"
                placeholder="Enter new password"
                onChange={this.changePwd} />

这是我的按钮,我想在上面执行检查(我已经完成了),在响应之后,我想清除字段值

<Button type="button"
        value="Change"
        onClick={this.handleClick}/>

文本框是我的通用组件。。 任何帮助都将非常感激。
提前感谢:)

您需要一个组件道具,该道具使用
onChange
功能“控制”输入值。您需要执行以下步骤:

  • 构造函数方法中添加输入值初始状态,大多数情况下使用空字符串
  • 使onChange函数为该值设置一个新状态
  • 不要忘记在构造函数中绑定你的函数
有关更多详细信息,您可以复制并粘贴组件代码,以确认react语法(es5、es6或es7)

例如:

constructor() {

 this.state: {
   value: ''

this.changePwd = this.changePwd.bind(this)
}

changePwd(event) {
  this.setState({ value: event.target.value })
}

<TextBox 
  type="password"
  name="password"
  placeholder="Enter new password"
  value={this.state.value}
  onChange={this.changePwd} 
/>
constructor(){
该州:{
值:“”
this.changePwd=this.changePwd.bind(this)
}
更改PWD(事件){
this.setState({value:event.target.value})
}

您需要一个组件的道具,该道具使用
onChange
功能“控制”输入值。您需要执行以下步骤:

  • 构造函数方法中添加输入值初始状态,大多数情况下使用空字符串
  • 使onChange函数为该值设置一个新状态
  • 不要忘记在构造函数中绑定你的函数
有关更多详细信息,您可以复制并粘贴组件代码,以确认react语法(es5、es6或es7)

例如:

constructor() {

 this.state: {
   value: ''

this.changePwd = this.changePwd.bind(this)
}

changePwd(event) {
  this.setState({ value: event.target.value })
}

<TextBox 
  type="password"
  name="password"
  placeholder="Enter new password"
  value={this.state.value}
  onChange={this.changePwd} 
/>
constructor(){
该州:{
值:“”
this.changePwd=this.changePwd.bind(this)
}
更改PWD(事件){
this.setState({value:event.target.value})
}

这种方法假设父组件(同时包含textarea和按钮的组件)正在维护textarea的状态(在本例中,这就是实现该状态的方法)

//组件中的某个位置(可能是容器组件)
重置(){
this.setState({value:'});
}
onChange(e){
this.setState({value:e.target.value});
}
//渲染
重置
编辑根据更新的问题进行更新

constructor(props) {
    super(props);
    this.change = this.change.bind(this);
    this.inputOnChange = this.inputOnChange.bind(this);
}

change(e) {
    e.preventDefault();

    if(this.state.newpwd === this.state.cfmpass) {
        var pass = {
            "pwd": this.state.newpwd
        };
        var url = "xyz";

        Request.PatchRequest(url, pass, (response) => {
            this.setState({
                authMsg : JSON.parse(response.response).data,
                value: '', 
            });
        });
}

inputOnChange(e) {
    this.setState({ value: e.target.value });
}

// render
render() {
    return (    
        <TextBox 
            type="password"
            name="password"
            placeholder="Enter new password"
            onChange={this.inputOnChange} 
            value={this.state.value}
        />
        <button onClick={this.change}>Change</button>
    );
}
构造函数(道具){
超级(道具);
this.change=this.change.bind(this);
this.inputOnChange=this.inputOnChange.bind(this);
}
更改(e){
e、 预防默认值();
if(this.state.newpwd==this.state.cfmpass){
var pass={
“pwd”:this.state.newpwd
};
var url=“xyz”;
请求.补丁请求(url,通过,(响应)=>{
这是我的国家({
authMsg:JSON.parse(response.response).data,
值:“”,
});
});
}
输入更改(e){
this.setState({value:e.target.value});
}
//渲染
render(){
报税表(
改变
);
}

这种方法假设父组件(同时包含textarea和按钮的组件)正在维护textarea的状态(在本例中,这就是实现该状态的方法)

//组件中的某个位置(可能是容器组件)
重置(){
this.setState({value:'});
}
onChange(e){
this.setState({value:e.target.value});
}
//渲染
重置
编辑根据更新的问题进行更新

constructor(props) {
    super(props);
    this.change = this.change.bind(this);
    this.inputOnChange = this.inputOnChange.bind(this);
}

change(e) {
    e.preventDefault();

    if(this.state.newpwd === this.state.cfmpass) {
        var pass = {
            "pwd": this.state.newpwd
        };
        var url = "xyz";

        Request.PatchRequest(url, pass, (response) => {
            this.setState({
                authMsg : JSON.parse(response.response).data,
                value: '', 
            });
        });
}

inputOnChange(e) {
    this.setState({ value: e.target.value });
}

// render
render() {
    return (    
        <TextBox 
            type="password"
            name="password"
            placeholder="Enter new password"
            onChange={this.inputOnChange} 
            value={this.state.value}
        />
        <button onClick={this.change}>Change</button>
    );
}
构造函数(道具){
超级(道具);
this.change=this.change.bind(this);
this.inputOnChange=this.inputOnChange.bind(this);
}
更改(e){
e、 预防默认值();
if(this.state.newpwd==this.state.cfmpass){
var pass={
“pwd”:this.state.newpwd
};
var url=“xyz”;
请求.补丁请求(url,通过,(响应)=>{
这是我的国家({
authMsg:JSON.parse(response.response).data,
值:“”,
});
});
}
输入更改(e){
this.setState({value:e.target.value});
}
//渲染
render(){
报税表(
改变
);
}

yeah明白了..但在你的重置按钮上,我想确认密码和当前密码是否匹配..如果匹配,我将显示我的post请求的响应,然后我想清除输入字段值明白了..从这个意义上说,这回答了你的问题?你提到你想在后面清除该字段吗呃回答,什么回答?再次检查问题我更新了它以便更好地理解。回答是指api响应根据您的新问题更新。是的,我得到了。但是在您的重置按钮上,我想确认密码和当前密码是否匹配。如果匹配,我将显示我的post请求的响应在那之后我想清除输入字段值明白了吗..从这个意义上说,这回答了你的问题?你提到你想在回答后清除字段,什么回答?再次检查问题我更新了它以更好地理解..回答是指api响应根据你的新问题更新