【发布时间】:2018-11-30 01:42:00
【问题描述】:
我正在尝试将一个函数向下传递给一个孩子,然后再向下传递给该孩子的孩子,然后将它的 id 传递回父级,但我不知道如何将 id 传递回来。我可以在不传回参数的情况下调用该函数,但我无法使用它。
这是我的父组件:
class SideBar extends Component {
constructor(props){
super(props);
this.state={
groups: [
{name: 'Test', id: 1},
],
open: false,
selectedIndex: 1
};
}
handleSelectedIndex = (id) => {
console.log('selected id: ' + id);
};
render(){
return(
<div className={classes.Groups}>
<Groups groups={this.state.groups} selected={this.state.selectedIndex} handleSelected={this.handleSelectedIndex}/>
</div>
);
}
这是第一个孩子:
const groups = (props) => (
<List component="nav" className={classes.GroupContainer}>
{
props.groups.map(group =>
<Group
name={group.name}
key={group.id}
id={group.id}
selected={props.selected}
handleSelected={props.handleSelected}/>
)
}
</List>
);
这是孩子的孩子:
const group = (props) => {
let id = props.id
return(
<>
<ListItem
button
selected={props.selected === props.id}
className={classes.Group}
onClick={props.handleSelected(id)}
>
<ListItemText
className={classes.GroupTitle}
primary={props.name}
key={props.key}/>
</ListItem>
<Divider className={classes.Divider}/>
</>
);
};
有人能解释一下如何将 id 传回来吗?
【问题讨论】:
-
@SakoBu 不是那个的副本。那只涉及一个孩子。我正在尝试通过中间人子组件
标签: reactjs