Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/363.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将选中值从子组件返回到父组件和祖父母组件_Javascript_Forms_Reactjs - Fatal编程技术网

Javascript 使用React将选中值从子组件返回到父组件和祖父母组件

Javascript 使用React将选中值从子组件返回到父组件和祖父母组件,javascript,forms,reactjs,Javascript,Forms,Reactjs,我正在列出学生的名字和身份证。每当呈现列表元素时,父类调用子类 export default class Parent extends Component { render() { return ( <div> <div> <ul>{this.props.studentData.map(item => { return( <div&g

我正在列出学生的名字和身份证。每当呈现列表元素时,父类调用子类

export default class Parent extends Component {    
  render() {
    return (
      <div>
        <div>
          <ul>{this.props.studentData.map(item => {
            return(
            <div><Child key={item.id} {...item} /></div>);
          })}
          </ul>
          <button>Submit</button>
        </div>
      </div>
    );
  }
}

export default class Child extends Component {
  render() {
    let {name}=this.props;
    return (
      <li><input type="checkbox"/>{name}</li>
    );
  }
}
导出默认类父扩展组件{
render(){
返回(
    {this.props.studentData.map(项=>{ 返回( ); })}
提交 ); } } 导出默认类子扩展组件{ render(){ 设{name}=this.props; 返回(
  • {name}
  • ); } }

    我试图在列表下放置一个提交按钮,返回检查学生姓名的结果,一个或多个。我不明白的是,如何将student name的值从子组件返回到父组件,一直返回到层次结构的顶部,并存储在某种变量中。是否有方法将值返回到父组件,即进行调用的组件?

    您可以向
    子组件发送回调函数,该函数在选中或取消选中时发出通知

    constchild=({id,name,onChange})=>
    
  • onChange(id,event.target.checked)} /> {name}
  • 类父类扩展了React.Component{ 构造函数(){ 超级() this.handleChange=this.handleChange.bind(this) } 手柄更换(id,已选中){ log(`student${id}是否${checked?'checked':'unchecked'}`) } render(){ 返回(
      {this.props.studentData.map(项=> )}
    ) } } 常量studentData=[ {id:1,名字:'Student 1'}, {id:2,姓名:'Student 2'}, {id:3,名字:'Student 3'}, ] ReactDOM.render( , document.getElementById('root')) )

    您可以向
    子对象发送回调函数,该函数会在选中或取消选中时发出通知

    constchild=({id,name,onChange})=>
    
  • onChange(id,event.target.checked)} /> {name}
  • 类父类扩展了React.Component{ 构造函数(){ 超级() this.handleChange=this.handleChange.bind(this) } 手柄更换(id,已选中){ log(`student${id}是否${checked?'checked':'unchecked'}`) } render(){ 返回(
      {this.props.studentData.map(项=> )}
    ) } } 常量studentData=[ {id:1,名字:'Student 1'}, {id:2,姓名:'Student 2'}, {id:3,名字:'Student 3'}, ] ReactDOM.render( , document.getElementById('root')) )
    
    
    将来自父级的函数作为子级的道具传递,并在检查输入时在子级内部调用此道具。在父级中,您将保留选中子级的状态,然后在提交时发送。将父级中的函数作为子级的属性传递,并在选中输入时在子级内部调用此属性。在父级中,您将保留选中子级的状态,然后在提交时将其发送。
    祖父母
    组件是否也可以从
    父级
    组件检索数据?无论是否存在复选框和按钮,都可以从层次结构的底部到顶部获取数据吗?@user8907896。只要您继续传播回调,
    祖父母
    组件也可以从父组件
    检索数据吗?无论是否存在复选框和按钮,都可以从层次结构的底部到顶部获取数据吗?@user8907896。只要你继续传播回调。