gpt4 book ai didi

javascript - 是否可以从未导入 withRouter 的文件设置组件路由?

转载 作者:行者123 更新时间:2023-12-03 03:27:09 25 4
gpt4 key购买 nike

我想在收到端点数据时触发状态更改,以便同步我的 GUI。

监听传入套接字数据的文件我们将调用sockets.js。在 sockets.js 内部我想调用路由转换。

if (data === 'gameHasLoaded') { 
history.push('/game');
}

到目前为止一切顺利,但是......

我无法从'react-router-dom'导入{ withRouter },因为sockets.js位于公共(public)文件夹中。我是否必须重新配置 sockets.js 进行捆绑并导入 React 才能在此处推送路由?

<小时/> sockets.js

var master = new WebSocket('ws://' + document.domain + ':' + '8000');

function joinQueue(){...};
function leaveQueue(){...};
function rematch(){...};

master.onmessage = function (event) {
if (data === 'gameHasLoaded') {
history.push('/game');
} else if (data === 'otherEvent') {
...
}
}

最佳答案

你有两个选择。

选项 1:使用 React-websocket在 React 中,您将能够使用 history.push('/game');选项 2:保留所有内容,使用 location.href '/game'; 代替 history.push('/game');

我更愿意选择选项一,因为选择选项二,您将重新加载整个页面,而不是利用单页应用程序的优势之一

关于javascript - 是否可以从未导入 withRouter 的文件设置组件路由?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46267417/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com