8

我无法访问 的值<TextField />,如果我不写<input type='password'/>,那么它工作正常,但为此我得到一个 TypeError,' this.refs[this._getRef(...)].getInputNode is not a function '。

 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> 
    );}

   }

下图是上述代码的控制台输出。

控制台输出

4

4 回答 4

21

这解决了我的问题:

<TextField ref='password'
    hintText="Password"
    floatingLabelText="Password"
    type="password">
</TextField>

在那之后

 this.refs.password.getValue()

给出所需的输出。

对于反应 v >= 15.6

<TextField ref={x => this.password = x}
    hintText="Password"
    floatingLabelText="Password"
    type="password">
</TextField>

在 inputHandler 函数中

this.password.value
于 2015-07-20T08:54:39.727 回答
19

对于材料 1.0 和反应 16.1.1

使用 inputRef

  <TextField autoFocus={true} inputRef={el => this.fv = el} 
        placeholder="Required" size="30"></TextField >

要读取值,请使用以下行

console.log(this.fv.value);
于 2017-11-16T12:10:59.747 回答
0

分配ref="password"给输入本身而不是TextField. 目前,您正在getValue()某个抽象(可能是某个容器)标签 ( TextField) 上执行,而不是在其input本身上执行。

是它是如何完成的。

于 2015-07-16T09:40:25.067 回答
0

您可以像这样获取输入值:

this.refs.password.input.value;
于 2017-08-15T15:39:48.140 回答