首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >React Kendo lib -需要双击才能触发onclick回调

React Kendo lib -需要双击才能触发onclick回调
EN

Stack Overflow用户
提问于 2022-10-24 11:02:40
回答 1查看 34关注 0票数 2

我使用PanelBar,并使用名为ParentComponent的组件来呈现网格,就像我附加的https://stackblitz.com/edit/react-zqjhpp-ev3ujs?file=app%2Fmain.jsx,app%2FParentComponent.jsx项目一样

下面是App组件:

代码语言:javascript
复制
import ReactDOM from 'react-dom';
import ParentComponent from './ParentComponent';
import { PanelBar, PanelBarItem } from '@progress/kendo-react-layout';
const App = () => {
    return (
      <PanelBar>
        <PanelBarItem expanded={true}>
          <ParentComponent  />
        </PanelBarItem>
      </PanelBar>
    );
}

ReactDOM.render(<App />, document.querySelector('my-app'));

下面是ParentComponent组件:

代码语言:javascript
复制
import React from 'react';
import { Grid, GridColumn as Column } from '@progress/kendo-react-grid';
import products from './products.json';

const ParentComponent = () => {
  return (
    <Grid style={{ height: '400px' }} data={[...products]}>
      <Column
        field="ProductID"
        title="ID"
        width="100px"
        cell={(props) => (
          <td>
            <div onClick={()=>{
              console.log("test")
            }}>Click</div>
          </td>
        )}
      />
      <Column field="ProductName" title="Name" width="250px" />
      <Column field="Category.CategoryName" title="CategoryName" />
      <Column field="UnitPrice" title="Price" />
      <Column field="UnitsInStock" title="In stock" />
      <Column
        field="Discontinued"
        cell={(props) => (
          <td>
            <input
              disabled
              type="checkbox"
              checked={props.dataItem[props.field]}
            />
          </td>
        )}
      />
    </Grid>
  );
};

export default ParentComponent;

它可以正常工作,直到我单击ID列中的 click 单元格,我需要单击它两次才能触发控制台上的回调日志“测试”文本。

注意:如果我替换

代码语言:javascript
复制
<div onClick={() => {
     console.log("test")
}}>Click</div>

进入一个Link组件的react路由器-dom我也有同样的问题,我必须点击两次来触发它。请帮帮我!非常感谢你!

更新的:我把useCallback放在包装回调的地方

代码语言:javascript
复制
(props) => (<div onClick={() => console.log(“test”)}>Click<div/>

那就行了,但我不知道为什么

EN

回答 1

Stack Overflow用户

发布于 2022-10-24 11:29:49

确保你的窗口是聚焦的,所以试着点击你的细胞附近,然后在它上,它可能真的工作。

如果没有,请尝试将onClick提供给列本身。

如果它不起作用,我只能建议PanelBarItem本身可能会使用第一次单击,为了测试它,只需使用简单的div删除PanelBarItem,然后尝试单击单元格。

希望能帮上忙!

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74180156

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档