如何在 React 的 material-ui 中获取密码字段值
How to get password field value in react's material-ui
我无法访问 <TextField />
的值,如果我不写 <input type='password'/>
那么它工作正常,但是为此我得到一个 TypeError,'this.refs[this._getRef(...)].getInputNode 不是函数'.
dialogAction(tag,e){
console.log(this.refs.password);
console.log(this.refs.password.getValue());
this.refs.dialog.dismiss();
}
render(){
let self = this;
let row = this.row,col = this.column;
let standardActions = [
{ text: 'Cancel',onTouchTap: this.dialogAction.bind(this,ProductConstants.CANCEL)},
{ text: 'Submit',onTouchTap: this.dialogAction.bind(this,ProductConstants.SUBMIT)}
];
return (
<div className="ProductRepository">
<Dialog ref = 'dialog'
title="Dialog With Standard Actions"
actions={standardActions}
actionFocus="submit"
modal={true}>
<TextField ref='password'
hintText="Password"
floatingLabelText="Password">
<input type="password" />
</TextField>
</Dialog>
</div>
);}
}
下图是上述代码的控制台输出。
将 ref="password"
分配给输入本身而不是 TextField
。目前你正在一些抽象(可能是一些容器)标签(TextField
)上执行 getValue()
,而不是在 input
本身上。
Here是怎么做到的。
这解决了我的问题:
<TextField ref='password'
hintText="Password"
floatingLabelText="Password"
type="password">
</TextField>
之后
this.refs.password.getValue()
给出所需的输出。
For React v >= 15.6
<TextField ref={x => this.password = x}
hintText="Password"
floatingLabelText="Password"
type="password">
</TextField>
在 inputHandler 函数中
this.password.value
你可以这样获取输入值:
this.refs.password.input.value;
对于 material 1.0 和反应 16.1.1
使用 inputRef
<TextField autoFocus={true} inputRef={el => this.fv = el}
placeholder="Required" size="30"></TextField >
要读取值,请使用下面的行
console.log(this.fv.value);
我无法访问 <TextField />
的值,如果我不写 <input type='password'/>
那么它工作正常,但是为此我得到一个 TypeError,'this.refs[this._getRef(...)].getInputNode 不是函数'.
dialogAction(tag,e){
console.log(this.refs.password);
console.log(this.refs.password.getValue());
this.refs.dialog.dismiss();
}
render(){
let self = this;
let row = this.row,col = this.column;
let standardActions = [
{ text: 'Cancel',onTouchTap: this.dialogAction.bind(this,ProductConstants.CANCEL)},
{ text: 'Submit',onTouchTap: this.dialogAction.bind(this,ProductConstants.SUBMIT)}
];
return (
<div className="ProductRepository">
<Dialog ref = 'dialog'
title="Dialog With Standard Actions"
actions={standardActions}
actionFocus="submit"
modal={true}>
<TextField ref='password'
hintText="Password"
floatingLabelText="Password">
<input type="password" />
</TextField>
</Dialog>
</div>
);}
}
下图是上述代码的控制台输出。
将 ref="password"
分配给输入本身而不是 TextField
。目前你正在一些抽象(可能是一些容器)标签(TextField
)上执行 getValue()
,而不是在 input
本身上。
Here是怎么做到的。
这解决了我的问题:
<TextField ref='password'
hintText="Password"
floatingLabelText="Password"
type="password">
</TextField>
之后
this.refs.password.getValue()
给出所需的输出。
For React v >= 15.6
<TextField ref={x => this.password = x}
hintText="Password"
floatingLabelText="Password"
type="password">
</TextField>
在 inputHandler 函数中
this.password.value
你可以这样获取输入值:
this.refs.password.input.value;
对于 material 1.0 和反应 16.1.1
使用 inputRef
<TextField autoFocus={true} inputRef={el => this.fv = el}
placeholder="Required" size="30"></TextField >
要读取值,请使用下面的行
console.log(this.fv.value);