【发布时间】:2020-07-31 11:56:30
【问题描述】:
我在由 onClick 激活的 map 函数中有一个绑定函数,但我无法访问此函数,因为似乎使用 this 作为参数会停止 setState 工作。本来 buttonPress 函数中的 setState 可以工作,但现在我添加了 bind(this, (key)) 以允许 key 参数通过,它跳过了 setState,我只能使用 console.log()。
一切的目的是识别点击了哪些条目,然后将其作为道具传递给子类组件。
map() 函数
<div ref={p => this.MyMenu = p} className="mainmenu">
<p className="title">Song List</p>
<div className="songList">
{song.map(song => (<div onClick={this.buttonPress.bind(this, song.key)} key={song.key} className="song-entry">
<h3 className="song-name">{song.name}</h3>
<p className="song-length">{song.length}</p>
<p className="song-desc">{song.desc}</p>
</div>))
}
</div>
</div>
这里是按钮按下功能
buttonPress (key) {
console.log(key);
let localkey = key
this.setState({songchoice: localkey});
console.log(this.state.songchoice);
clearInterval(this.countdownInterval);
this.setState({count:3, countdown:true, songchoice: key},
()=>{setInterval(this.countdownInterval, 3000); this.aboutTween = TweenMax.to(this.aboutSection, .8,{opacity:1, y: -100, ease: Power3.easeOut})});
}
如果您想查看整个页面,也可以使用 GitHub 链接。
【问题讨论】:
标签: javascript reactjs parameters binding setstate