使用 hashHistory 推送反应路由问题
React routing issue with hashHistory push
我这样定义一个反应路由路径:
/customer/:cid
当我导航到所需路径时,像这样从我的传奇中调用哈希历史推送:
yield call(hashHistory.push, `/customer/${cid}`);
我在浏览器中没有看到 'customer' 字样,并且出现 url 与路由路径不匹配的警告。当我使用 /${cid}
expect from /customer/${cid}
时,路由器工作正常。我错过了什么?
我想,您可以跳过前缀为 customer 的第一个正斜杠。
因为 url 您推送到 hashHistory 是相对于应用程序根目录 url。所以跳过第一个正斜杠。希望有帮助
可以试试:
window.history.pushState(null, null, `#/customer/${cid}`);
或者创建一个模块 hashHistory:
// hashHistory.js
import { createHashHistory } from 'history';
export default createHashHistory({});
并使用它:
import hashHistory from './hashHistory';
// ....
hashHistory.push(`/customer/${cid}`);
我这样定义一个反应路由路径:
/customer/:cid
当我导航到所需路径时,像这样从我的传奇中调用哈希历史推送:
yield call(hashHistory.push, `/customer/${cid}`);
我在浏览器中没有看到 'customer' 字样,并且出现 url 与路由路径不匹配的警告。当我使用 /${cid}
expect from /customer/${cid}
时,路由器工作正常。我错过了什么?
我想,您可以跳过前缀为 customer 的第一个正斜杠。 因为 url 您推送到 hashHistory 是相对于应用程序根目录 url。所以跳过第一个正斜杠。希望有帮助
可以试试:
window.history.pushState(null, null, `#/customer/${cid}`);
或者创建一个模块 hashHistory:
// hashHistory.js
import { createHashHistory } from 'history';
export default createHashHistory({});
并使用它:
import hashHistory from './hashHistory';
// ....
hashHistory.push(`/customer/${cid}`);