小编T D*_*Doe的帖子

将click事件传递给嵌套组件-React | 材料UI

我有问题。当您单击listItem(全分隔的li元素)时,我想调用onChange内的复选框组件上的函数listItem

我可以轻松地将该功能从复选框移动到父对象,但我会松开checked道具。

选中复选框本身不起作用,但只需打开控制台即可查看结果。我希望handleToggle函数在单击整个元素时正确触发(不仅是复选框)

  <List>
    {['first', 'second', 'third'].map((name, i) => (
      <ListItem key={i} dense button>
        <ListItemText primary={name} />
        <Checkbox
          disableRipple
          checked={false}
          onChange={(evt, checked) => this.handleToggle(evt, checked, name)}
        />
      </ListItem>
    ))}
  </List>
Run Code Online (Sandbox Code Playgroud)

代码沙箱

编辑

我根本不想在此组件中使用状态。总结-如何将事件从ListItem(父母)传递给孩子(Checkbox)?

最终编辑:我已经找到了处理方法。不需要状态。只需两行简单的代码。

由于复选框状态由redux完全控制,因此我仅将onClickfunc移到ListItem元素中,其中代码中一行包含该元素:

...dispatch(toggle(!this.props.elements[nameOfElement], name));

无论如何,感谢大家的帮助。支持每个答案。

javascript reactjs material-ui

5
推荐指数
1
解决办法
2751
查看次数

标签 统计

javascript ×1

material-ui ×1

reactjs ×1