You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

react-chessboard v5.5.0 中onPieceClick事件无法触发的问题求助

react-chessboard v5.5.0 中onPieceClick事件无法触发的问题求助

我现在在用react-chessboard v5.5.0做一个简单的事件处理,想实现用户点击棋子时在控制台打印消息,但onPieceClick函数就是不触发。以下是我最开始的代码:

import React from 'react';
import { Chessboard } from 'react-chessboard';

function App() {
  const onPieceClick = (piece) => {
    console.log(`clicked: ${piece}`);
  };

  return (
    <div style={{ width: '500px' }}>
      <h1>click test</h1>
      <Chessboard id="piece-click-test" position="start" onPieceClick={onPieceClick} />
    </div>
  );
}

export default App;

这段代码没效果,我以为是状态管理的问题,于是改成了带useState的版本:

import React, { useState } from 'react';
import { Chessboard } from 'react-chessboard';

function ChessboardClickTest() {
  const [position, setPosition] = useState("start");
  
  const onPieceClick = (piece) => {
    console.log(`clicked: ${piece}`);
  };

  return (
    <div style={{ width: '500px' }}>
      <h1>Click Test</h1>
      <Chessboard id="click-test" position={position} onPieceClick={onPieceClick} />
    </div>
  );
}

export default ChessboardClickTest;

但onPieceClick函数还是不执行。我已经排查过这些点:

  • 我的react-chessboard版本是5.5.0,onPieceClick这个prop应该是有效的
  • 文件后缀是.jsx
  • 传给position的是合法的FEN字符串("start")

是不是这个版本的库有已知问题?还是我漏了什么关键步骤让事件处理器正常工作?

我用的依赖版本:

"chess.js": "^1.4.0",
"react": "^19.1.1",
"react-chessboard": "^5.5.0",
"react-dom": "^19.1.1"

另外我试过降级所有依赖,降级后棋子能正常移动,记谱也没问题,但最新版本里连onPieceClick都不正常工作。我还参考了很多YouTube视频,照着写也还是不行。

内容来源于stack exchange

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.07 08:14:30