【问题标题】:Get parent component properties on click of child component单击子组件获取父组件属性
【发布时间】:2018-04-08 12:40:17
【问题描述】:

我不确定这是否是解决我的问题的正确方法,所以我也愿意接受其他方法。

当我点击一个子组件(图片)时,我希望能够访问父组件的属性。到目前为止,这是我的代码:

父组件

import {Image, Grid, Row, Col} from 'react-bootstrap';
import React, { Component } from 'react';
import localForage from 'localforage';
import Activity from './activity';


testClick(e){
    console.log("click handled", e.target.getAttribute('value'));
}

render() {
    return (
        <Grid>
            <Row>
                <Col sm={4} smPush={4}>
                    <h2 className="center-header">Explore Ibiza</h2>
                </Col>
            </Row>
            <Row />
                <Activity handleClick={(e)=>{this.testClick(e)}} description="Dining" imageSource="https://lonelyplanetimages.imgix.net/mastheads/95971965.jpg?sharp=10&vib=20&w=1200" />
                <Activity description="Diving" imageSource="https://media-cdn.tripadvisor.com/media/photo-s/06/8d/1f/6a/linda-playa.jpg"/>
                <Activity onClick={this.handleClick} description="Boating" imageSource="https://lvs.luxury/wp-content/uploads/2015/06/1.jpg"/>
            <Row />
        </Grid>
    )
}

子组件

  return(
<Col sm={4}>
  <p>{props.description}</p>
  <Image onClick={props.handleClick} value={props.description}  src={props.imageSource}className="activity-image margin-bottom-5"/>
</Col>

)

说明

我目前能够获取该值,但如果我还想获取父元素的description 属性怎么办?

【问题讨论】:

    标签: javascript reactjs react-redux jsx


    【解决方案1】:

    我不确定我是否理解正确,但我认为您只需将一个额外的参数传递给父级的回调/处理程序。

    也许这样的事情可能会有所帮助:

    <Image onClick={e => this.props.handleClick(e, props.description)} ...
    

    【讨论】:

    • 是的,你在正确的轨道上。将更新我的解决方案!
    • @AustinWrenn 虽然关于其他用户代码的哪一部分是可以编辑的存在很多争论,但通常您应该只发布一个 comcopy 建议代码更改和让 OP 进行编辑。明显的例外是代码缩进/格式编辑(除了像 Python 这样缩进是语言不可或缺的语言)、cmets 中的拼写错误/拼写错误,以及打印字符串中可能存在的拼写错误。任何其他更改都有可能破坏代码、改变作者的意图,甚至意外修复问题中不可或缺的错误……
    • @AustinWrenn 我已经编辑了答案,以证明可以接受哪些其他类型的编辑。此外,如果它解决了问题,请不要忘记接受其中一个答案,并为任何有用的答案投票。
    • @AustinWrenn 如果您打算更新您的解决方案不要修改您问题中的代码。将标题为 EDIT: 的部分附加到问题中,或者,特别是如果更新是实质性的,请添加您自己的答案。
    • 尼古拉 - 只是为了您的利益。反引号用于格式化内联代码段、变量名等。您还只需要在要格式化的文本之前和之后一个。 (使用三个是多余的。)对于单独一行上的一行代码,就像在这种情况下,您可以使用反引号,但是您不会获得语法突出显示的好处会从使用正确的代码块格式中获得。
    猜你喜欢
    • 1970-01-01
    • 2021-11-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-05-11
    • 1970-01-01
    • 2019-05-05
    • 2014-04-05
    相关资源
    最近更新 更多