我在我的一个组件中有一个Material UI列表。当我点击此列表的任何项时,我会进入另一个ListView。我正在使用router转到另一个ListView,并使用onClick方法。每当我点击第一个列表的任何列表项时,我打印“firstList clicked”。每当我点击第二个列表的任何项时,它打印“secondList clicked”。
我的问题在于:当我点击第一个列表的ListItem时,“secondList clicked”的console.log(“secondList clicked”)也会自动打印出“firstList Clicked”。我的第二个列表中有四个列表项,因此我的控制台打印输出如下:
firstList Clicked
secondList Clicked
secondList Clicked
secondList Clicked
secondList Clicked
为什么会发生这种情况?
以下是我的代码。
SecondList code
class TagListItemDetails extends Component {
handleClick() {
console.log("secondList clicked")
}
handleButtonClick() {
browserHistory.push("TagList")
}
render() {
return (
<MuiThemeProvider>
<div>
<List id="parent-list-tags">
<ListItem primaryText="Kitchen" onTouchTap={this.handleClick()}/>
<ListItem primaryText="Beach" onClick={this.handleClick()}/>
<ListItem primaryText="Marriage" onClick={this.handleClick()}/>
<ListItem primaryText="Garden" onClick={this.handleClick()}/>
</List>
<div className="backButton">
<RaisedButton backgroundColor="#293C8E" label="Back" onClick={this.handleButtonClick} labelColor="white">
</RaisedButton>
</div>
</div>
</MuiThemeProvider>
);
}
}
const mapStateToProps =(state) =>{
return {
tags: state.tagReducer
};
};
function matchDispatchToProps(dispatch){
return bindActionCreators({tagSelected: tagSelected}, dispatch);
}
export default connect(mapStateToProps, matchDispatchToProps)(TagListItemDetails);
第一个列表
export default class TagList extends Component {
handleClicked() {
console.log("firstList Clicked")
browserHistory.push("TagListItemDetails")
}
render() {
return (
<div>
<List id="parent-list-tags" >
<ListItem primaryText="Scene" onClick={this.handleClicked} />
<Divider/>
<ListItem primaryText="Actors" onClick={this.handleClicked} />
<Divider/>
<ListItem primaryText="Emotions" onClick={this.handleClicked} />
<Divider/>
<ListItem primaryText="Actions" onClick={this.handleClicked}/>
<Divider/>
<ListItem primaryText="Objects" onClick={this.handleClicked}/>
<Divider/>
<ListItem primaryText="Compliance" onClick={this.handleClicked} />
</List>
<AddButton />
</div>
)
}
};
()
:onClick={this.handleClick}
。 - Piotr BerebeckionClick={() => this.props.itemSelected(2)}
让我知道它是否有效。这是一个演示:http://codepen.io/PiotrBerebecki/pen/YGRQrG - Piotr Berebecki