javascript - React 点击处理程序不工作并将 ="[object Object]"写入 DOM

标签 javascript reactjs react-hooks

更新:最终证明这是 Babel 配置问题。

我是第一次使用 React 函数组件,并且通过事件处理程序得到了一些意想不到的结果。这是我在遇到更充实的组件问题后创建的一个大幅简化的测试用例:

const App = () => {

  const handler = function(e) {
    e.preventDefault();
    
    console.log('handleAppClick');
  };
  
  return (
    <div onClick={ handler }>This is the whole thing.</div>
  );
};

ReactDOM.render(<App />, document.querySelector('#app'));
body {
  font-family: monospace;
}

#app {
  border: 2px solid black;
  padding: 8px;
  border-radius: 2px;
  cursor: pointer;
  user-select: none;
}
<script src="https://unpkg.com/react@16.12.0/umd/react.development.js"></script>
<script src="https://unpkg.com/react-dom@16.12.0/umd/react-dom.development.js"></script>

<div id="app"></div>

我的期望/理解是,在这种情况下不需要绑定(bind),因为处理程序中不需要 this 引用。我尝试在 App 内部和外部定义处理程序,将其定义为箭头函数,将其简单地定义为 function handler(e) { ... },但是在在所有情况下,我在渲染页面上的该 div 上都没有获得有效的点击处理程序,如果我检查 DOM,我可以在 div 上看到 on="[object Object]" 属性。

这是怎么回事?看来我只是错过了一些明显的东西。

最佳答案

最终证明这是 Babel 配置问题。感谢所有提出意见或建议的人。

关于javascript - React 点击处理程序不工作并将 ="[object Object]"写入 DOM,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59592500/

相关文章:

reactjs - 使用 webpack 为 SCSS 添加变量

javascript - 如何从 Promise.all 获取被拒绝的 Promise?

javascript - React Redux mapStateToProps 在获取新数据之前显示旧数据

reactjs - 在 React 中通过 getBoundingClientRect 接收元素的尺寸

reactjs - 钩子(Hook) setState 总是落后一步

javascript - 单击元素 jQuery 时获取父表单类

javascript - Momentjs utc() 在本地 (Mac) 和服务器 (Ubuntu) 上的工作方式不同

javascript - 如何使用 jquery 实现垂直图像 slider ,其中在显示新图像之前它将关闭并使用新图像打开

javascript - Socket.io 数据包在断开和重新连接之间丢失

javascript - Eslint React Hooks错误: eslint-plugin-react-hooks exhaustive deps warning for a function dependency in useEffect