为了账号安全,请及时绑定邮箱和手机立即绑定

如何过滤参考数组

如何过滤参考数组

HUH函数 2021-12-02 19:24:34
我有一组数据,可以映射并显示在屏幕上。我希望能够在单击时对这些 dom 元素执行操作。我已经将 refs 存储在一个数组中,现在 onclick 我想对点击的那个做一些事情,其余的做一些事情。所以我想到使用 es6 过滤器从新数组中删除当前的一个,然后迭代它们。然后我可以自由地对点击的项目做任何我想做的事情。但是我无法让过滤器工作。没有安慰任何东西。https://codepen.io/_adamjw3/pen/MWWmGEgclass 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'));
查看完整描述

1 回答

?
慕妹3242003

TA贡献1824条经验 获得超6个赞

看起来你唯一的问题是你的过滤功能是错误的。它应该使用selectedDomElement.

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


查看完整回答
反对 回复 2021-12-02
  • 1 回答
  • 0 关注
  • 137 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信