将Click事件传递给孩子

用户名

我有一个click事件,以在父级中显示一个弹出窗口,需要将其向下传递给List child,然后传递给Item child,再传递给List child。当用户单击链接组件时,它将打开弹出窗口。现在无法正常工作,“ TypeError:onCourseSelect不是函数。我的代码在下面。请帮助!

    App.js
onCourseSelect=(course)=>{
    this.setState({selectedCourse:course 
                ,showPopup:true             
    });
  };
<List course={course} onCourseSelect={this.onCourseSelect} />

List.js
const List=(course,onCourseSelect)=>{
return(
<Item key={course.ID} course={course} onCourseSelect={onCourseSelect}  />)}
)}

Item.js
const Item=({course, onCourseSelect})=>{
  return(<Link onCourseSelect={onCourseSelect(course)} course={course}></Link> )

}

Link.js
const Link=({course, onCourseSelect})=>{

    return (
        <div>
        <input type="button" value="View More" onClick={onCourseSelect(course)} />
        </div>
    );
}
麦克里斯特

在Item.js中,您写的onCourseSelect={onCourseSelect(course)}应该是,应该将它onCourseSelect={onCourseSelect}作为道具传递给子组件,以便在其中调用它。该课程作为组件中的单独道具通过。

<input>那么你可以做,onClick = {()=>{ onCourseSelect(course) }}

编写onClick = { onCourseSelect(course) }将在每次重新渲染时调用onCourseSelect方法。

App.js

onCourseSelect=(course)=>{
    this.setState({
        selectedCourse:course,
        showPopup:true             
    });
};
<List course={course} onCourseSelect={this.onCourseSelect} />

List.js

const List=({course,onCourseSelect})=>{
return(
<Item key={course.ID} course={course} onCourseSelect={onCourseSelect}  />)}
)}

Item.js

const Item=({course, onCourseSelect})=>{
  return(<Link onCourseSelect={onCourseSelect} course={course}></Link> )

}

Link.js

const Link=({course, onCourseSelect})=>{

    return (
        <div>
        <input type="button" value="View More" onClick={()=> onCourseSelect(course)} />
        </div>
    );
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用.trigger将事件传递给孩子

来自分类Dev

将值传递给AngularJS click事件

来自分类Dev

将变量传递给Click事件

来自分类Dev

将输入参数传递给.click事件

来自分类Dev

如何将事件传递给LitElement中的孩子

来自分类Dev

jQuery将click事件传递给onclick属性

来自分类Dev

将子控件的click事件传递给父控件

来自分类Dev

将动态按钮ID传递给click事件

来自分类Dev

使用其自己的“ Click”事件将控件传递给函数

来自分类Dev

将参数传递给jQuery中的click事件

来自分类Dev

jQuery将click事件传递给onclick属性

来自分类Dev

UserControl两次将click事件传递给MainWindow

来自分类Dev

TypeScript将道具传递给孩子

来自分类Dev

反应redux将状态传递给孩子

来自分类Dev

React - 将动态值传递给孩子

来自分类Dev

将事件传递给事件处理程序

来自分类Dev

将datagridview传递给事件-合并事件

来自分类Dev

如何不将点击事件传递给孩子反应?

来自分类Dev

将$ event传递给ng-click但事件未定义

来自分类Dev

将参数传递给jquery click事件中的回调函数

来自分类Dev

AngularJS + NG-Grid将row.column.field传递给ng-click事件

来自分类Dev

Vue.js将绑定数据传递给Click事件处理程序

来自分类Dev

React JS将click事件传递给另一个组件

来自分类Dev

将方法作为道具传递给所有孩子

来自分类Dev

将功能从父母传递给孩子

来自分类Dev

将状态作为道具传递给孩子的好习惯吗?

来自分类Dev

如何将价值从Boostrap模态孩子传递给父母?

来自分类Dev

如何通过钩子将状态从孩子传递给父母

来自分类Dev

将数据从孩子传递给父母React Hooks