【发布时间】:2020-11-05 05:18:22
【问题描述】:
如何将函数作为状态参数传递,使用带有 props.history.push 方法的反应路由器。
const myFun = () => {
console.log("do something");
}
例如:
props.history.push({
pathname: "/myrouterpath",
state: {
myFun: myFun
},
});
如果我这样做,我会收到错误无法在“历史”上执行“pushState”:无法克隆函数 myFun() {} 请帮帮我。
【问题讨论】:
-
props.history.push({ pathname: '/product', query: { myFun: myFun }});,您可以使用查询。未测试 -
你不能。读取 wc3 web history apiw3.org/TR/html52/browsers.html#history,它以序列化状态返回,该状态反序列化为对象。这意味着您不能将功能放入其中
-
是的,你说得对,我不能通过参数传递函数,我们只能传递字符串。我们有没有其他方法可以通过导出 myFun 函数来实现。
标签: reactjs react-router react-router-dom