javascript - react - 当 onClick 子项时创建一个事件类

标签 javascript reactjs meteor state

我正在使用 Meteor/ReactJS,并且正在构建一个带有列表的 TodoList。当用户单击列表项时,我会显示与该列表关联的任务。 我可以获取这些项目,我正在使用父函数调用 onClick 。 问题是我想向我刚刚单击的列表项添加一个“事件”类。但我不知道如何在父类中执行此操作,也不知道如何在子类中执行此操作..

这是父类(我在 render() 中调用此函数:

selectList(listId) {
    this.setState({ listSelected: listId });
}

renderLists() {
    return this.props.lists.map((list) => (
        <List 
            selectList={() => this.selectList(list._id)}
            key={list._id}
            list={list}
        />
    ));
}

这是 child :

render() {
    return (
        <ListGroupItem onClick={this.props.selectList}>
            {this.props.list.name}
            <span className="pushRight">
                <Glyphicon 
                    onClick={() => this.deleteThisList()}
                    glyph="glyphicon glyphicon-remove"
                />
            </span>
        </ListGroupItem>
    );
}

如何在父级中获取 selectList 的结果,然后将类提供给子级,或者如何处理子级中的点击并直接在子级中提供类?

非常感谢您的帮助:)

最佳答案

父级

1.将选定的 ID 传递到列表组合

selectList(listId) {
    this.setState({ listSelected: listId });
}

renderLists() {
    return this.props.lists.map(list => (
        <List
          selectedItemId={this.state.listSelected}
          selectList={() => this.selectList(list._id)}
          key={list._id}
          list={list}
        />
    ));
}

child

2.将list.id与传递的selectedItemId进行比较,如果为true,则该项目处于事件状态

render() {
  const { selectList, list, selectedItemId} = this.props;
    return (
        <ListGroupItem isActive={list.id==selectedItemId} onClick={selectList}>
          {list.name}
          <span className="pushRight">
            <Glyphicon
              onClick={() => this.deleteThisList()}
              glyph="glyphicon glyphicon-remove"
                />
          </span>
        </ListGroupItem>
    );
}

3.然后在ListGroupItem

  render(){
      const {isActive}=this.props;
        return (
          <div className={"someclass "+(isActive? 'active':'')}>
            .......
          </div>
        );
    }

关于javascript - react - 当 onClick 子项时创建一个事件类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40128883/

相关文章:

javascript - 无法通过react-two-renderer加载.mtl和.obj

javascript - 使用 JavaScript 从 HTML 表格中获取特定的单元格值

reactjs - 随机设置 <Avatar> 背景颜色

reactjs - react 管理中的自定义路由

javascript - 使用 cURL 在 Windows 7 上安装 Meteor

javascript - 网址生成器功能

reactjs - 基于其他 Prop 类型的 Prop 类型

javascript - "Can' t wait without a Fiber”查询数据库时出错?

javascript - 在 Meteor 集合中具有一致的客户端 session ID

javascript - TinyMCE 浏览器拼写检查