单击任何其他元素时如何删除 ReactJS 中的类?

帕万·贾索里亚

我正在编写一个用于菜单导航的 ReactJS 应用程序,在该应用程序中,我在单击 div 时添加一个“选定”类,并从其他元素中删除“选定”类。现在我被困在如何从其他元素中删除类这是我的代码

<pre>
**App.js**

class App extends React.Component {
  constructor(){
    super();
    this.state = {
      active : "0",
    }
  }
  clickHandler(index){

  }
  render() {
    let menu = this.props.menu; // menu is a array of page name e.g. ['home','about us','contact us']
    let style = 0;
    return (
            {menu.map((menu, index) =>
             List clickHandler={this.clickHandler.bind(this, index)} index={index} key={index} menu={menu} 

            )}
    );
  }
}

export default App;


** list.js ** 

import React from 'react';

class List extends React.Component{
    constructor(props){
        super(props)
        this.state = {
            focused : "0"
        }
    }
    clickMe(index){
        let style = "";
        this.setState({focused: index});
        if(this.state.focused == index){
            console.log(index);
            style = "selected";
        }
        this.props.clickHandler();

    }
    render(){
        let style = "";
        if(this.state.focused === this.props.index){
            style = "selected";
        }else{
            style = "";
        }
        return li className={style} onClick={this.clickMe.bind(this, this.props.index)}>{this.props.menu} /li>
    }
}

export default List;

</pre>
伊万·穆贾坦

我的建议是创建两个组件

1)列表,该组件将具有选定/聚焦项目的内部状态编号/索引。作为道具,此组件将获得项目数组。在渲染方法中,您可以渲染父标签 <ol> 和 </ol>,在该标签中,您可以在项目的 foreach 循环列表中进行渲染,基于状态索引和 foreach 循环中的索引,您可以计算是否选择了项目。此组件将具有处理程序来更改所选索引此处理程序您必须传递给项目组件。

2) 第二个组件 Item 将渲染 < li > 标签作为优点该组件将从数组中获取项目并作为父 List 组件的回调函数,如果项目被选中 (false/true) 也会标记。

当用户单击 Item 时,List 组件中的处理程序将被称为更改父级中的状态,而不是整个列表将被重新呈现。

确保第二个组件 Item 已实现 componentWillReceiveProps(nextProps) 方法。选择道具更改时能够呈现

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

当用户单击任何其他控件时,从DataGrid中删除选定的行

来自分类Dev

如何将渲染的表格数据导出为 pdf 文件或 reactjs 中的任何其他格式

来自分类Dev

从 ReactJs 组件中添加或删除类

来自分类Dev

如何在单击li元素时添加“活动”类并将其从其他元素中同时删除?

来自分类Dev

在其他元素单击时从切换元素中删除活动类

来自分类Dev

如何从reactjs列表中删除单击li元素?

来自分类Dev

在rangy中创建荧光笔时使用除文档以外的任何其他元素

来自分类Dev

如何在ReactJS中向单击的项目添加活动类

来自分类Dev

jQuery-单击时添加活动类并从其他元素中删除活动

来自分类Dev

单击元素时添加一个类,单击其他位置时将其删除

来自分类Dev

在Tkinter中运行无限循环时如何使用关闭(X)或任何其他按钮

来自分类Dev

如何覆盖材料ui REACTjs中menuItem中的选定类?

来自分类Dev

如何从emberjs中的其他元素中删除类

来自分类Dev

如何在ReactJS的同一类中调用方法?

来自分类Dev

如何在ReactJS中检查事件目标的类名?

来自分类Dev

如何将类道具传递给 reactjs 中的函数

来自分类Dev

将任何类的&:hover扩展到SASS或SCSS中任何其他类的悬停

来自分类Dev

单击该 div 元素以外的任何其他位置时删除该 div 元素

来自分类Dev

引导程序中的输入组类不允许同一行上有任何其他元素

来自分类Dev

单击其他按钮的下拉项时,将删除Bootstrap按钮的下拉子元素的类

来自分类Dev

单击jQuery addclass并单击其他内容时删除类

来自分类Dev

单击href时添加类并删除其他类

来自分类Dev

使用for循环检查list元素是否等于list中的任何其他元素

来自分类Dev

在ReactJS中删除项目

来自分类Dev

添加类时从所有其他元素中删除类

来自分类Dev

如何在其他脚本的任何其他函数中调用包含参数的函数?

来自分类Dev

Angular.js如何在单击时插入CSS类并删除所有其他类

来自分类Dev

防止空格按钮触发jQuery中的任何其他按钮单击

来自分类Dev

如何在wpf中添加软件更新程序,而无需单击任何其他第三方工具?

Related 相关文章

  1. 1

    当用户单击任何其他控件时,从DataGrid中删除选定的行

  2. 2

    如何将渲染的表格数据导出为 pdf 文件或 reactjs 中的任何其他格式

  3. 3

    从 ReactJs 组件中添加或删除类

  4. 4

    如何在单击li元素时添加“活动”类并将其从其他元素中同时删除?

  5. 5

    在其他元素单击时从切换元素中删除活动类

  6. 6

    如何从reactjs列表中删除单击li元素?

  7. 7

    在rangy中创建荧光笔时使用除文档以外的任何其他元素

  8. 8

    如何在ReactJS中向单击的项目添加活动类

  9. 9

    jQuery-单击时添加活动类并从其他元素中删除活动

  10. 10

    单击元素时添加一个类,单击其他位置时将其删除

  11. 11

    在Tkinter中运行无限循环时如何使用关闭(X)或任何其他按钮

  12. 12

    如何覆盖材料ui REACTjs中menuItem中的选定类?

  13. 13

    如何从emberjs中的其他元素中删除类

  14. 14

    如何在ReactJS的同一类中调用方法?

  15. 15

    如何在ReactJS中检查事件目标的类名?

  16. 16

    如何将类道具传递给 reactjs 中的函数

  17. 17

    将任何类的&:hover扩展到SASS或SCSS中任何其他类的悬停

  18. 18

    单击该 div 元素以外的任何其他位置时删除该 div 元素

  19. 19

    引导程序中的输入组类不允许同一行上有任何其他元素

  20. 20

    单击其他按钮的下拉项时,将删除Bootstrap按钮的下拉子元素的类

  21. 21

    单击jQuery addclass并单击其他内容时删除类

  22. 22

    单击href时添加类并删除其他类

  23. 23

    使用for循环检查list元素是否等于list中的任何其他元素

  24. 24

    在ReactJS中删除项目

  25. 25

    添加类时从所有其他元素中删除类

  26. 26

    如何在其他脚本的任何其他函数中调用包含参数的函数?

  27. 27

    Angular.js如何在单击时插入CSS类并删除所有其他类

  28. 28

    防止空格按钮触发jQuery中的任何其他按钮单击

  29. 29

    如何在wpf中添加软件更新程序,而无需单击任何其他第三方工具?

热门标签

归档