React (Electron-React-Biolerplate) 不同处理 MacOS 和 Linux (Raspbian OS)

问题描述

我在我的 MacBook 上开发了一个 React-Electron-Boilerplate(带有 Redux)应用程序。由于它稍后需要在我的 RaspBerryPi 上运行,因此我不时在那里对其进行测试。到现在为止,一切都是一样的......

我通过 WebSocket 检索协调并根据选择的 movementSpec 更新它们的全局状态。但不知何故,这在 macOS 上运行时与在 Rasbian 上运行时不同。

const Websocket = () => {
  // dispatch for updating the hardware output position
  const positiondispatch = usedispatch<dispatch<PositionActions>>();

  // Getting movementSpec to adjust coordinates accordingly
  const { movementSpec } = useSelector(
    (state: AppState) => state.movementSpecs
  );

  const ws = new WebSocket(webSocketBaseAddress);

  // Retrieve data from websocket
  ws.onmessage = useCallback(
    (event) => {
      const response = JSON.parse(event.data);
      const coordinatesRetrieved = JSON.parse(response);

      console.log(`TRIGGERED! New Spec: ${movementSpec}`);

      // Update State of x and y coordinates
      positiondispatch({
        type: 'SET_POSITION',payload: coordinationGenerator(
          {
            rotation: coordinatesRetrieved.ABS_X,seesaw: coordinatesRetrieved.ABS_Y,},movementSpec
        ),});
    },[movementSpec]
  );

  return (
    <div>
      <p>{movementSpec}</p>
    </div>
  );
};

export default Websocket;

当更改 movementSpec 时,Mac 上的 useCallback 函数会更新并将“TRIGGERED!...”文本打印到控制台,但在 RaspBerryPi 上这不起作用。奇怪的是,段落中的文本在两台机器上都会更新。实际上,除此 useCallback 之外的其他一切都完全相同!

我尝试了很多不同的东西,但没有落后。任何想法可能是这个问题的根源?任何帮助表示赞赏!

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)