Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/24.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 如何从React Js中的组件获取父文件中的输入文本框值_Javascript_Reactjs - Fatal编程技术网

Javascript 如何从React Js中的组件获取父文件中的输入文本框值

Javascript 如何从React Js中的组件获取父文件中的输入文本框值,javascript,reactjs,Javascript,Reactjs,我想在全局级别创建一个输入类型,因此我创建了一个组件,并希望从另一个文件访问它。 这里有一个例子 主文件: class User extends Component { constructor(props) { super(props); } render(){ return ( <CustomInput refval = "username"

我想在全局级别创建一个输入类型,因此我创建了一个组件,并希望从另一个文件访问它。 这里有一个例子

主文件:

class User extends Component {

    constructor(props) {
        super(props);
    }
    render(){
       return (
                <CustomInput 
                    refval = "username"
                    label = "Username"
                    classNameLabel = "pl0"
                    icon = "person"
                />
       );
    }
}
类用户扩展组件{
建造师(道具){
超级(道具);
}
render(){
返回(
);
}
}
组件文件:

class CustomInput extends React.Component {
    constructor(props) {
        super(props);
    }
    render() {
      return (
          <div className="col-sm-3 mt10">
            <label className={"col-sm-12 "+this.props.classNameLabel}>{this.props.label}</label>
            <div className="col-sm-12 pl0">
                {(this.props.icon!=="" && 
                  <i className={"fa fa-"+this.props.icon+""}></i>
                )}
                <input type={this.props.type} ref={this.props.refval} className="form-control inputText" />
            </div>
          </div>
      );
    }
}
类CustomInput扩展React.Component{
建造师(道具){
超级(道具);
}
render(){
返回(
{this.props.label}
{(这个.props.icon!==“”&&
)}
);
}
}
我怎样才能存档?
提前非常感谢:)

一种方法是向下传递函数,如下所示:

class User extends Component {
    constructor(props) {
        super(props);
    }

    const onClick =(e) => { /// do stuff}
    render(){
    return (
        <CustomInput 
        refval = "username"
        label = "Username"
        classNameLabel = "pl0"
        icon = "person" onClick={onClick} />
    }}
}  
类用户扩展组件{
建造师(道具){
超级(道具);
}
const onClick=(e)=>{///do stuff}
render(){
返回(
}}
}  
通过道具访问回调

class CustomInput extends React.Component {
        constructor(props) {
            super(props);
        }
        render() {
            return (
                    <input type={this.props.type} onClick={props.OnClick} />
                </div>
                </div>
            );
        }
    }
类CustomInput扩展React.Component{
建造师(道具){
超级(道具);
}
render(){
返回(
);
}
}

更好的方法可能是查看挂钩和访问全局用户状态。另一个技巧是,您可以将这些组件作为功能组件而不是类组件编写。

您好,本文应该帮助您添加一个类似onKeyDown的事件,这意味着当您键入某个内容并按enter键时,您可以启动一个函数,然后在那里您可以获得值和在props中传递它或使用redux。查看此stackoverflow帖子。这说明了如何将函数从父级传递到子级,以及如何从子级检索数据。