如何过滤参考数组

我有一组数据,可以映射并显示在屏幕上。我希望能够在单击时对这些 dom 元素执行操作。我已经将 refs 存储在一个数组中,现在 onclick 我想对点击的那个做一些事情,其余的做一些事情。


所以我想到使用 es6 过滤器从新数组中删除当前的一个,然后迭代它们。然后我可以自由地对点击的项目做任何我想做的事情。


但是我无法让过滤器工作。没有安慰任何东西。


https://codepen.io/_adamjw3/pen/MWWmGEg


class App extends React.Component {

    constructor(props) {

        super();

    this.myRefs = [];

    this.state = {

        testData: [

            "dave",

            "pete",

            "mark"

        ]

     }

  }


  myActionHandler = key => {

     const selectedDomElement = this.myRefs[key];

     const filtered =  this.myRefs.filter(item => item !== item);



     filtered.forEach(function(entry) {

        console.log("all but selected ne", entry);

    });

  };


    render(){

        return (

            <div className="container">

                {this.state.testData.map((item, key) => {

                    return (

                        <div key={key} >

                            <button onClick={() => this.myActionHandler(key)} ref={ref => (this.myRefs[key] = ref)} >

                                {item} 

                            </button>

                        </div>

                    );

                })}

            </div>

        );

    }

}


ReactDOM.render(<App />, document.getElementById('app'));


HUH函数
浏览 138回答 1
1回答

慕妹3242003

看起来你唯一的问题是你的过滤功能是错误的。它应该使用selectedDomElement.const&nbsp;filtered&nbsp;=&nbsp;&nbsp;this.myRefs.filter(item&nbsp;=>&nbsp;item&nbsp;!==&nbsp;selectedDomElement);
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript