Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Reactjs Material UI React.js,是否有方法为ListItem和ListItem';阿凡达?_Reactjs_Material Ui - Fatal编程技术网

Reactjs Material UI React.js,是否有方法为ListItem和ListItem';阿凡达?

Reactjs Material UI React.js,是否有方法为ListItem和ListItem';阿凡达?,reactjs,material-ui,Reactjs,Material Ui,我正在使用Material UI库,无法确定是否有办法在列表项上发生两个不同的单击事件 这基本上就是我所拥有的: <ListItem leftAvatar={ <div onClick={() => insideAvatarFunction()} > {<Avatar />} </div> } primaryText=

我正在使用Material UI库,无法确定是否有办法在列表项上发生两个不同的单击事件

这基本上就是我所拥有的:

    <ListItem
      leftAvatar={
        <div onClick={() =>
          insideAvatarFunction()}
        >
          {<Avatar />}
        </div>
      }
      primaryText={primaryText}
      onTouchTap={() => everywhereClickFunction}
    />);

{}
}
primaryText={primaryText}
onTouchTap={()=>Everywhere ClickFunction}
/>);
onTouchTap触发,并忽略leftAvatar内部的onClick。如果外部onTouchTap不存在,则onClick将触发fine

有没有办法让onTouchTap在点击化身之外的任何地方时触发


谢谢

如果其他人遇到这个问题,@zv.diego的评论解决了这个问题

我将
stopPropagation()
放在div的
onClick
函数中,并将父函数切换到
onClick
,而不是
onTouchTap
,它就工作了

防止当前事件在捕获和冒泡阶段进一步传播

从“React”导入React;
从“物料ui/List”导入{List,ListItem};
从“材质ui/化身”导入化身;
导出默认类App扩展React.Component{
InsideAvatar函数(e){
e、 停止传播();
log('Fired insideAvatarFunction()!');
}
全方位点击功能(e){
log('Fired everywhere clickfunction()!');
}
渲染(){
返回(

您尝试过在div的onClick匿名函数中使用stopPropagation()吗?@zv.diego谢谢您的帮助!我是web开发的新手,所以我不知道这一点。再次感谢:)
import React from 'react';
import {List, ListItem} from 'material-ui/List';
import Avatar from 'material-ui/Avatar';

export default class App extends React.Component {

  insideAvatarFunction(e) {
    e.stopPropagation();
    console.log('Fired insideAvatarFunction()!');
  }

  everywhereClickFunction(e) {
    console.log('Fired everywhereClickFunction()!');
  }

  render () {
    return (
      <List>
        <ListItem primaryText="Inbox"
          leftAvatar={
            <div onClick={this.insideAvatarFunction}>
              <Avatar />
            </div>
          }
          onTouchTap={this.everywhereClickFunction}
          onClick={this.everywhereClickFunction}
        />
      </List>
    );
  }
}