Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript java脚本回调函数_Javascript_Reactjs_React Jsx_Ref - Fatal编程技术网

Javascript java脚本回调函数

Javascript java脚本回调函数,javascript,reactjs,react-jsx,ref,Javascript,Reactjs,React Jsx,Ref,对于访问React元素或组件,“ref”是最好的方法吗? 我们在ReactJS中有其他相同的选项吗 <TextField ref={(elem) => this.textField = elem} value={value} {...restProps} /> this.textField=elem} value={value} {…restProps} /> 如果要访问实际的DOM节点,则ref是唯一的选项。通常,refs用于创建不受控制的组件,我们

对于访问React元素或组件,“ref”是最好的方法吗? 我们在ReactJS中有其他相同的选项吗

<TextField
    ref={(elem) => this.textField = elem}
    value={value}
    {...restProps}
/>
this.textField=elem}
value={value}
{…restProps}
/>

如果要访问实际的DOM节点,则
ref
是唯一的选项。通常,
ref
s用于创建不受控制的组件,我们让DOM负责输入的值,并在需要时从对DOM节点的引用中获取值。您不能将
value
用作这些组件上的道具,但可以使用
defaultValue
设置其初始值:

class WithUncontrolledTextInput extends React.Component {
  constructor() {
    super();
    this.handleSubmit = this.handleSubmit.bind(this);
  }

  handleSubmit(e) {
    e.preventDefault();
    console.log(`The input value is ${this.textField.value}`);
  }

  render() {
    return (
      <form onSubmit={this.handleSubmit}>
        <input ref={input => this.textField = input} defaultValue='hello' />
        <input type='submit' value='Submit' />
      </form>
    );
  }
}
类WithUncontrolledDesiveput扩展了React.Component{
构造函数(){
超级();
this.handleSubmit=this.handleSubmit.bind(this);
}
handleSubmit(e){
e、 预防默认值();
log(`输入值为${this.textField.value}`);
}
render(){
返回(
this.textField=input}defaultValue='hello'/>
);
}
}
另一种方法是使用受控组件,其中输入的当前值存储在组件的状态中,并在输入值更新时更新

class WithControlledTextInput extends React.Component {
  constructor() {
    super();
    this.state = {
      textField: 'hello'
    };
    this.handleSubmit = this.handleSubmit.bind(this);
    this.handleInput = this.handleInput.bind(this);
  }

  handleSubmit(e) {
    e.preventDefault();
    console.log(`The input value is ${this.state.textField}`);
  }

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

  render() {
    return (
      <form onSubmit={this.handleSubmit}>
        <input value={this.state.textField} onChange={this.handleInput} />
        <input type='submit' value='Submit' />
      </form>
    );
  }
}
带有ControlledDesiveput的类扩展了React.Component{
构造函数(){
超级();
此.state={
textField:'你好'
};
this.handleSubmit=this.handleSubmit.bind(this);
this.handleInput=this.handleInput.bind(this);
}
handleSubmit(e){
e、 预防默认值();
log(`输入值为${this.state.textField}`);
}
手动输入(e){
这是我的国家({
textField:e.target.value
});
}
render(){
返回(
);
}
}

您计划如何处理
文本字段
?我只想从无状态文本字段组件读取输入值