微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

如何解决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 举报,一经查实,本站将立刻删除。