【发布时间】:2019-10-20 20:01:06
【问题描述】:
我在尝试使用 <Link> 从 useState 钩子传递 setState 时遇到 react-router 问题。我做错了什么?
我创建了一个简单的项目来显示问题: https://codesandbox.io/s/restless-surf-mj2vx?fontsize=14
打开控制台并点击链接查看错误。
const [state, setState] = useState(0);
return (
<div className="App">
<Link to={{ pathname: "/test", state: { state, setState } }}>test</Link>
<Switch>
<Route path="/test" component={Test} />
</Switch>
</div>
);
}
我收到此错误,但无法帮助我解决问题:
“未捕获的 DOMException:无法在 'History' 上执行 'pushState':无法克隆 function () { [native code] }。”
【问题讨论】:
-
它试图将您作为
state传递的内容克隆到Link,但无法克隆setState函数。为什么你将它作为状态传递? -
离开当前组件时传递
setState更新程序回调的意义何在?
标签: javascript reactjs react-router