2

当我单击元素 AppBar 时,左侧的图标应该执行 _handleClick() 方法。我无法收到控制台消息。我正在使用 material-ui 框架,并且为通过触摸点击选择左图标时的回调函数提供了属性 onLeftIconButtonTouchTap。

import React, { Component } from 'react'
import { AppBar, IconButton } from 'material-ui'
import MoreVertIcon from 'material-ui/lib/svg-icons/navigation/more-vert';

let injectTapEventPlugin = require("react-tap-event-plugin");

//Needed for onTouchTap
//Can go away when react 1.0 release
//Check this repo:
//https://github.com/zilverline/react-tap-event-plugin
injectTapEventPlugin();


class Header extends Component {
  constructor(props) {
    super(props);
    this._handleClick = this._handleClick.bind(this);
  }

  _handleClick(e) {
    e.preventDefault();
    // Show/Hide the LeftMenu
    window.console.log("Click!");
  }

  render() {
       return (
        <AppBar title="Arasaaccc"
                iconElementLeft={ <IconButton>
                                    <MoreVertIcon/>
                                  </IconButton> }
                onLeftIconButtonTouchTap={ this._handleClick }
                isInitiallyOpen={ true } />


      )
  }
}

export default Header

但是它适用于另一个组件:

class Prueba extends Component {
  constructor(props) {
    super(props);
    this._handleClick = this._handleClick.bind(this);
  }

  _handleClick(e) {
    e.preventDefault();
    window.console.log("Click!");
  }
  render (){
    return (
      <h1 onClick={this._handleClick}>Prueba Prueba Prueba</h1>
      )
  }
}
export default Prueba;
4

2 回答 2

8

如果为 AppBar 组件指定图标,则 onLeftIconButtonTouchTap 事件不起作用。要么你不指定一个图标:

<AppBar title="Arasaaccc" 
         onLeftIconButtonTouchTap={ this._handleClick }
                            isInitiallyOpen={ true } />

或者你在 IconButton 组件上应用事件:

<AppBar title="Arasaaccc"
        iconElementLeft={ <IconButton onTouchTap={ this._handleClick }  >
                            <MoreVertIcon />
                          </IconButton> }
        isInitiallyOpen={ true } />

编辑:请注意,根据this GitHub issue,问题应该得到解决。您仍然不能在和_handleClick上都拥有 aa ,无论是其中一个还是另一个。iconElementLeftonLeftIconButtonTouchTap

于 2015-12-12T20:19:10.510 回答
0

我看不出你的代码有任何问题,所以我猜你需要React-Tap-Event-Plugin。文档说这种依赖是暂时的,一旦 react v1.0 发布就会消失。

于 2015-12-11T13:11:58.907 回答