【问题标题】:React onClick function for list items not receiving value when child clicked对子项单击时未接收值的列表项的反应 onClick 函数
【发布时间】:2017-12-22 15:54:40
【问题描述】:

我正在使用 Bootstrap 构建一个基本表,我想处理用户点击一行,以便我可以将其标记为选中。

我的列表项有嵌套元素。当我直接单击列表项时,会调用 onClick 处理程序并正确设置“event.target.value”。

当我单击嵌套元素时,onClick 处理程序仍会被调用,但“event.target.value”未定义。

我已经阅读了很多基于渲染方法内部绑定的建议,但我知道这不是推荐的做法。

class TeamListItem extends Component {

    constructor(props) {
        super(props);
        this.internalHandleSelectTeam = this.internalHandleSelectTeam.bind(this);
    }

    internalHandleSelectTeam(event) {
        console.log(event.target.value);
    }

    render() {
        const team = this.props.team;   
        return (
            <li className="list-group-item" value={team.teamId} onClick={this.internalHandleSelectTeam}>
                <Row>
                    <Col xs={10} sm={8} md={6}>
                        {team.teamName}
                    </Col>
                    <Col xs={2} sm={4} md={6}>
                        {team.resourceList.length}
                    </Col>
                </Row>      
            </li>
        );
    }
}

export { TeamListItem }

【问题讨论】:

    标签: reactjs onclick


    【解决方案1】:

    好的,我已经通过修改“internalHandleSelectTeam”函数让它工作了:

    internalHandleSelectTeam() {
        const teamId = this.props.team.teamId;
        this.props.onSelectTeam(teamId);
    }
    

    我不确定这是否是一种好的做法,但它可以工作并且不需要在渲染函数中进行绑定。

    【讨论】:

    猜你喜欢
    • 2020-04-27
    • 1970-01-01
    • 2021-11-05
    • 2021-12-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-02-07
    • 2015-10-17
    相关资源
    最近更新 更多