我在下面有一个react代码,我在一系列购物清单中迭代。我创建了一个状态更改和一个样式变量,单击时将一次只更改一个项目。
然而它没有用。出于某种原因,当我单击一个项目时,它会将所有项目都变为粗体。
const App = () => (
<div><GroceryListItem /></div>
);
class GroceryListItem extends React.Component{
constructor(props){
super(props);
}
render(){
return (
<div><GroceryList groceryItems={['Cucumber', 'Kale']}/></div>
);
}
}
class GroceryList extends React.Component {
constructor(props){
super(props);
this.state = {
done: false
};
}
onClickItem(){
this.setState({
done: !this.state.done
});
}
render(){
var style = {
fontWeight: this.state.done ? 'bold' : 'normal'
};
return (
<ul>
{
this.props.groceryItems.map(item => <li style={style} onClick={this.onClickItem.bind(this)} key={item}>{item}</li>)
}
</ul>
);
}
}
知道为什么这不起作用以及如何解决吗?附注。感谢有关如何改进我的代码的建议。