【发布时间】:2019-12-27 20:16:30
【问题描述】:
我正在处理一个 JSFiddle 示例,但无法使其 100% 工作。
https://jsfiddle.net/richardmarais/kz0mLnge/13/
如您所见,它渲染了一些色块。
示例
当我点击其中一项时,onClick 事件被正确调用。
render() {
return (
<Fragment>
<ul>
<li>{this.state.items.filter(i => i.isSelected).map(i => i.name).join(', ')}</li>
</ul>
<ul className="Colors">
{this.state.items.map(item => (
<li key={item.name} name={item.name} className={`Colors__item Colors__item--${item.color} ` + (item.isSelected ? 'Colors__item--state-selected' : '')} onClick={this.onClick}>
{item.name}
</li>
))}
</ul>
</Fragment>
);
}
项目列表已正确更新(即isSelected: true)。
{name: "colour blue", color: "blue", isSelected: true}
问题
DOM 未更新以反映 onClick。
- 所选项目的样式应更改为
Colors__item--state-selected。 - 选择的
item.name应该是 写入 Fragment 的顶部。
其他问题
onClick 函数从事件 (e.target.textContent) 中获取 item.name。有没有办法将item.name 作为参数传递给onClick 调用?
【问题讨论】:
标签: javascript html css reactjs dom