javascript - 通过 onclick 事件从子级向父级 React js 发送数据?

标签 javascript reactjs

我是 React js 新手,我很困惑如何通过 onclick 事件从子组件向父组件发送数据。

父组件

...
      onTurn(id){
            console.log(id)//undefined
        }
        renderCardsList(){
              const {cardsList} = this.props

              return cardsList.get('cards').map(({id,front_image}) => {
                  return  <Card
                            image={front_image}
                            onTurn={this.onTurn}
                            />
              })

            }
...

子组件

const Card = (props) => {
    return(
        <div className="singleCard">
            <div className="imageDiv">
                <img src={props.image} alt="work" />
            </div>
            <div className="bottombar">
                <span onClick={e => props.onTurn(props.id)} className="glyphicon glyphicon-refresh" />
                <span className="glyphicon glyphicon-pencil" />
                <span className="glyphicon glyphicon-pushpin"  />
            </div>
        </div>
    )
};

最佳答案

您的 onClick 需要 props 上的 id 属性:

onClick={e => props.onTurn(props.id)}

但是您没有提供:

return  <Card
    image={front_image}
    onTurn={this.onTurn}
    />

很自然地,卡片的 render 中的 props.id未定义

如果您希望卡片在 props 上有一个 id,则需要指定一个,例如:

return  <Card
    image={front_image}
    onTurn={this.onTurn}
    id={/*something*/}
    />

关于javascript - 通过 onclick 事件从子级向父级 React js 发送数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45081923/

相关文章:

javascript - 存储中的竞争条件在 `render` 和 `componentDidMount` 之间

javascript - 如何让 VS Code 识别返回 React 的 HTML 语法

reactjs - 在 Material-UI CardMedia 中显示加载器

javascript - 在 Safari 11 中自动播放 iframe YouTube 视频

javascript - Angular typescript Controller 中的“状态未定义”

javascript - 覆盖自动生成的CSS

javascript - 功能恰好影响一半的预期元素

javascript - 有没有办法捕获警报确定按钮单击事件?

javascript - es6 - 导入所有没有别名的命名模块

javascript - 如何忽略用于测试 webpack 的原始加载器