Reactjs 来自父级的clild上的react-click事件

Reactjs 来自父级的clild上的react-click事件,reactjs,Reactjs,实现这一目标的最佳方法是什么: 我有一个呈现行的父级: < div className = "container" > {this.state.rows.map(function(row, i) { return <ProjectsRow row={row} key={i} /> }.bind(this))} < /div> {this.state.rows.map(函数(行,i){ 返回 }.bind(this))}

实现这一目标的最佳方法是什么:

我有一个呈现行的父级:

< div className = "container" >         
 {this.state.rows.map(function(row, i) {
    return <ProjectsRow row={row} key={i} />
 }.bind(this))}
< /div> 
{this.state.rows.map(函数(行,i){ 返回 }.bind(this))}
儿童:

  return ( 
<ReactTransitionGroup transitionName="reactClass" transitionAppear={true}>  
    < div className = "row" > 
        {this.props.row.map(function(project) {
        return  < div className = "col-md-4 project" key={project.id} >
                < div className="text-center img-container"> <img alt="logo" src={project.thumbnail} />< /div >

                <h4 className="text-center"> 
                < a className = "linkStyle1"
                    href = {'#/project/' + project.id} >
                    <i className="fa fa-angle-right"></i>{project.title} 
                </a>
                < /h4>   

                < /div>
                    })}
                < /div> 
            <hr />  
            </ReactTransitionGroup> 
返回(
{this.props.row.map(函数(项目)){ return })}


如何在子级上单击
h4
并在父级中访问它。我只能通过jQuery实现这一点,我不应该这样做。

您可以将回调传递给您的子级

< div className = "container" >         
 {this.state.rows.map(function(row, i) {
    return <ProjectsRow row={row} key={i} onClickCb={this.onClickChild} />
 }.bind(this))}
< /div> 
{this.state.rows.map(函数(行,i){ 返回 }.bind(this))}
必须在父组件中定义onClickChild

您的子组件可以将此回调附加到其h4处理程序

< div className = "col-md-4 project" key={project.id} >
           < div className="text-center img-container"> <img alt="logo" src={project.thumbnail} />< /div >

        <h4 className="text-center" onClick={this.props.onClickCb}> 
        < a className = "linkStyle1"
            href = {'#/project/' + project.id} >
            <i className="fa fa-angle-right"></i>{project.title} 
        </a>
        < /h4>                                  
    < /div>


我希望这对你的孩子有所帮助

< div className = "container" >         
 {this.state.rows.map(function(row, i) {
    return <ProjectsRow row={row} key={i} onClickCb={this.onClickChild} />
 }.bind(this))}
< /div> 
var Parent = React.createClass({
  randomFunction : function () {
    alert('randomFunction() called in Parent');
  },
  render : function () {
    return (
      <div>
        <Child randomFunction={this.randomFunction} />
      </div>
    );
  }
});

var Child = React.createClass({
  render : function () {
    return (
      <div>
        <button onClick={this.props.randomFunction}>Click me to trigger function in Parent</button>
      </div>
    );
  }
});
{this.state.rows.map(函数(行,i){ 返回 }.bind(this))}
必须在父组件中定义onClickChild

您的子组件可以将此回调附加到其h4处理程序

< div className = "col-md-4 project" key={project.id} >
           < div className="text-center img-container"> <img alt="logo" src={project.thumbnail} />< /div >

        <h4 className="text-center" onClick={this.props.onClickCb}> 
        < a className = "linkStyle1"
            href = {'#/project/' + project.id} >
            <i className="fa fa-angle-right"></i>{project.title} 
        </a>
        < /h4>                                  
    < /div>


我希望这对你的孩子有所帮助

< div className = "container" >         
 {this.state.rows.map(function(row, i) {
    return <ProjectsRow row={row} key={i} onClickCb={this.onClickChild} />
 }.bind(this))}
< /div> 
var Parent = React.createClass({
  randomFunction : function () {
    alert('randomFunction() called in Parent');
  },
  render : function () {
    return (
      <div>
        <Child randomFunction={this.randomFunction} />
      </div>
    );
  }
});

var Child = React.createClass({
  render : function () {
    return (
      <div>
        <button onClick={this.props.randomFunction}>Click me to trigger function in Parent</button>
      </div>
    );
  }
});
{this.state.rows.map(函数(行,i){ 返回 }.bind(this))}
必须在父组件中定义onClickChild

您的子组件可以将此回调附加到其h4处理程序

< div className = "col-md-4 project" key={project.id} >
           < div className="text-center img-container"> <img alt="logo" src={project.thumbnail} />< /div >

        <h4 className="text-center" onClick={this.props.onClickCb}> 
        < a className = "linkStyle1"
            href = {'#/project/' + project.id} >
            <i className="fa fa-angle-right"></i>{project.title} 
        </a>
        < /h4>                                  
    < /div>


我希望这对你的孩子有所帮助

< div className = "container" >         
 {this.state.rows.map(function(row, i) {
    return <ProjectsRow row={row} key={i} onClickCb={this.onClickChild} />
 }.bind(this))}
< /div> 
var Parent = React.createClass({
  randomFunction : function () {
    alert('randomFunction() called in Parent');
  },
  render : function () {
    return (
      <div>
        <Child randomFunction={this.randomFunction} />
      </div>
    );
  }
});

var Child = React.createClass({
  render : function () {
    return (
      <div>
        <button onClick={this.props.randomFunction}>Click me to trigger function in Parent</button>
      </div>
    );
  }
});
{this.state.rows.map(函数(行,i){ 返回 }.bind(this))}
必须在父组件中定义onClickChild

您的子组件可以将此回调附加到其h4处理程序

< div className = "col-md-4 project" key={project.id} >
           < div className="text-center img-container"> <img alt="logo" src={project.thumbnail} />< /div >

        <h4 className="text-center" onClick={this.props.onClickCb}> 
        < a className = "linkStyle1"
            href = {'#/project/' + project.id} >
            <i className="fa fa-angle-right"></i>{project.title} 
        </a>
        < /h4>                                  
    < /div>

我希望这有助于

var Parent=React.createClass({
var Parent = React.createClass({
  randomFunction : function () {
    alert('randomFunction() called in Parent');
  },
  render : function () {
    return (
      <div>
        <Child randomFunction={this.randomFunction} />
      </div>
    );
  }
});

var Child = React.createClass({
  render : function () {
    return (
      <div>
        <button onClick={this.props.randomFunction}>Click me to trigger function in Parent</button>
      </div>
    );
  }
});
随机函数:函数(){ 警报('randomFunction()在父级中调用'); }, 渲染:函数(){ 返回( ); } }); var Child=React.createClass({ 渲染:函数(){ 返回( 单击“我”以在父级中触发函数 ); } });
演示:

var Parent=React.createClass({
随机函数:函数(){
警报('randomFunction()在父级中调用');
},
渲染:函数(){
返回(
);
}
});
var Child=React.createClass({
渲染:函数(){
返回(
单击“我”以在父级中触发函数
);
}
});
演示:

var Parent=React.createClass({
随机函数:函数(){
警报('randomFunction()在父级中调用');
},
渲染:函数(){
返回(
);
}
});
var Child=React.createClass({
渲染:函数(){
返回(
单击“我”以在父级中触发函数
);
}
});
演示:

var Parent=React.createClass({
随机函数:函数(){
警报('randomFunction()在父级中调用');
},
渲染:函数(){
返回(
);
}
});
var Child=React.createClass({
渲染:函数(){
返回(
单击“我”以在父级中触发函数
);
}
});
演示: